我的规范文件中有以下代码
beforeEach(function () {
module('app');
inject(function ($injector) {
user = $injector.get('app.user');
});
});
user
未定义,并且没有被注入。所以我想确保app
模块确实加载了。
如果未加载模块,则会出现$injector:nomod
错误。如果模块已加载,但找不到服务,则会出现$injector:unpr
错误。就这么简单。总是有一个面包屑痕迹,不需要探测Angular来知道它是否无声地失败。
只需确保使用了正确的模块名称。您可以使用beforeEach
加载模块。此外,使用$injector
,您可以获得要测试的服务或控制器的实例:
'use strict';
describe('MyControllerName', function () {
var MyControllerName;
beforeEach(module('myAppMomduleName'));
beforeEach(inject(function ($injector) {
MyControllerName = $injector.get('MyControllerName');
}));
it('should create an instance of the controller', function () {
expect(MyControllerName).toBeDefined();
});
});