4

在 Vojta 关于测试指令的项目中,这段代码有什么作用?

  // load the tabs code
    beforeEach(module('tabs')); 

它说它加载标签代码但是,为什么?tabs 模块不是已经在这里定义了吗?

 var tabs = angular.module('tabs', []);

有人可以简要解释一下在角度测试中应该加载什么以及如何加载?

我试图在我的测试中调用这个函数,就像这样

 beforeEach(module('utils')) ;

我得到这个错误:

TypeError: Property 'module' of object [object Object] is not a function

另外,当我尝试像这样加载我的模板时

beforeEach(module('templates/loadingBar.html')); 

我收到此错误:

Error: No module: templates/loadingBar.html 

我真的对整个过程感到困惑。

感谢您的帮助...

4

1 回答 1

10

您列出的代码

var tabs = angular.module('tabs', []);

创建tabs模块,但为了加载它,您可能会在 DOM 中的元素上放置类似的ng-app="tabs"东西。这指示 Angular加载tabs模块并使其定义可用于应用程序用来解决依赖关系的注入器。(有关更多信息,请参阅Bootstrap 指南。)

在您的测试中,没有ng-app指令来初始化注入器或加载您的模块;该module函数(存在于angular.mock文件angular-mocks.js)在测试中为您执行此操作。如果您使用 Karma Jasmine 或 Mocha 适配器进行测试,您可以使用它module,否则您可能需要调用angular.mock.module

于 2013-05-21T05:35:56.690 回答