【发布时间】:2013-06-29 19:52:04
【问题描述】:
我无法使用 Jasmine 和 RequireJs 为 Angular JS 应用程序进行单元测试。我创建了一个 Plunker here
我遇到的问题是创建一个模块。如果我在控制器中包含 Angular 模块的设置,像这样(参见 Plunker 中的 Controller.js):
angular.module('catalogManagementApp', []);
然后一切正常。但是,这个模块是在另一个文件中创建的,所以这不起作用。因此,如果我尝试使用 Angular Mocks 模块功能在测试中设置模块,我会收到一条错误消息“No module: catalogManagementApp”。
如果您查看 ControllerTests.js 文件,这是有道理的,因为 RequireJS 在我调用 Angular Mocks 以创建模块之前加载了控制器:
beforeEach(module('catalogManagementApp'));
但是,我不确定如何使其正常工作。正如您从 ControllerTests.js 文件中注释掉的代码中看到的那样,我尝试将 Controller 的 require 调用移动到调用设置模块之后,但这会导致 Jasmine 测试运行器失败并且仍然相同 no module 错误.
用RequireJs运行Jasmine的代码改编自this
【问题讨论】:
标签: angularjs requirejs jasmine