我有一个非常简单的Mocha测试(我已经看过几十次的代码副本)
当我运行它时,角度模拟似乎成功加载注入的资源及其所有依赖项,并成功地使其进入第9行。当我进入$ rootScope.new()函数时,它直接进入catch块。
使用e as" undefined不是函数"
我不明白这里发生了什么。变量blockFns [i]是一个函数,或者至少是Chrome调试器所说的。所以我不明白为什么对injector.invoke的调用失败了。这是堆栈跟踪。
答案 0 :(得分:1)
您需要在致电$rootScope
之前注入$rootScope.$new()
:
var $rootScope;
beforeEach(inject(function($injector){
$rootScope = $injector.get('$rootScope');
}));
<强>更新强>
实际上问题是它应该是$rootScope.$new()
而不是$rootScope.new()
。