AngularJS单元测试中未找到模块错误

时间:2014-03-14 16:34:39

标签: javascript angularjs gruntjs jasmine karma-runner

我正在尝试使用Karma / Jasmine进行非常简单的测试,以便对我的AngularJS应用进行单元测试。这似乎有效

beforeEach(
        module('myApp')
);

it('should blah', function () {
    expect(true).toBe(true);
});

虽然这不是

beforeEach(
    function () {
        module('myApp')
    }
);

it('should blah', function () {
    expect(true).toBe(true);
});

我希望能够在每个测试套件之前做其他事情,但它没有给我任何有意义的错误来调试它,我看到的唯一一个是

TypeError: 'undefined' is not an object (evaluating 'currentSpec.queue.running')

涉及在第二个示例中在beforeEach构造中调用函数的行。

我希望其他人遇到这个并且可以提供帮助吗?

由于 斯蒂芬

1 个答案:

答案 0 :(得分:5)

这就是你如何宣布你的模块。如果你想做更多,你可以使用额外的beforeEach。

例如:

var scope;
var ctrl;
var mysvcMock;

beforeEach(module('myApp'));

beforeEach(function() {
    mysvcMock = {

    };
});

beforeEach(inject(function($rootScope, $controller) {
    scope = $rootScope.$new();
    ctrl = $controller('MyController', {
        $scope: scope,
        mysvc: mysvcMock
    });
}));

//it checks

如果你需要更清楚一点,请告诉我,我可以为你拼凑一个小提琴。

谢谢,

约旦

相关问题