Angular指令的Jasmine测试不起作用

时间:2015-07-02 12:46:23

标签: javascript angularjs node.js unit-testing jasmine

我正在尝试对Angular指令运行一个非常基本的测试,但似乎无法让它运行。我的代码如下。我从jshint看到的错误是:'inject' is not defined,我失败的测试错误是:TypeError: object is not a function

'use strict';

describe('playerInfo directive', function() {
  var $compile;
  var $rootScope;

  beforeEach(module('gameApp'));

  beforeEach(inject(function(_$compile_, _$rootScope_) {
    $compile = _$compile_;
    $rootScope = _$rootScope_;
  }));

  it('should replace the element with the appropriate content', function() {
    var element = $compile('<dm-player-info></dm-player-info>')($rootScope);
    $rootScope.$digest();
    expect(element.html()).toContain('Member Since:');
  });
});

一旦点击module,测试就会失败并显示上述错误消息。很明显,测试没有提到angular-mocks被包括在内。但是,我已经在我的index.html中引用了它,并且使用ngMock作为应用依赖项进行了测试(这会导致整个应用程序崩溃,但仍然没有运行测试)并且没有。

更新:我目前正在使用jasmine-node进行测试。这可能是问题,需要添加茉莉。

1 个答案:

答案 0 :(得分:0)

我刚刚遇到过这个问题,这就是我的一天(实际上是最终结果)。只需添加module('ng')module('yourAppModule')即可。我把它们放在每个块之前。它应该工作。