有没有办法看看是否加载了角度模拟模块?

时间:2016-05-17 14:24:08

标签: angularjs jasmine karma-jasmine

我的spec文件中有以下代码

beforeEach(function () {
    module('app');

    inject(function ($injector) {
        user = $injector.get('app.user');
    });
});

user未定义,并且未被注入。所以我想确保实际加载app模块。

2 个答案:

答案 0 :(得分:1)

如果未加载模块,则会获得$injector:nomod error。如果模块已加载但无法找到服务,则会获得$injector:unpr error。就是这么简单。总是存在一个痕迹痕迹,无需探测Angular是否会无声地失败。

答案 1 :(得分:0)

请确保您使用正确的模块名称。您可以使用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();
  });
});