0

我有一个非常简单的 Mocha 测试(我看过几十遍的代码副本) 在此处输入图像描述

当我运行它时,角度模拟似乎成功加载了注入的资源及其所有依赖项,并成功进入第 9 行。当我进入 $rootScope.new() 函数时,它直接进入 catch 块。 在此处输入图像描述

用 e 作为“未定义不是函数”

在此处输入图像描述

我不明白这里发生了什么。变量 blockFns[i] 是一个函数,或者至少 Chrome 调试器说它是一个函数。所以我不明白为什么对 injector.invoke 的调用失败。这是堆栈跟踪。 在此处输入图像描述

4

1 回答 1

1

您需要$rootScope在调用之前注入,$rootScope.$new()如下所示:

var $rootScope;
beforeEach(inject(function($injector){
  $rootScope = $injector.get('$rootScope');
}));

更新

实际上问题在于它应该是$rootScope.$new()而不是$rootScope.new().

于 2014-11-26T21:38:08.093 回答