Javascript AngularJS单元测试中未找到模块错误
我正在用Karma/Jasmine进行一个非常简单的测试,对我的AngularJS应用程序进行单元测试。这似乎有效Javascript AngularJS单元测试中未找到模块错误,javascript,angularjs,gruntjs,jasmine,karma-runner,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',
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')
与第二个示例中在beforeach构造中调用函数的行有关
我希望其他人已经遇到了这一点,可以帮助
谢谢
Stephen这正是您声明模块的方式。如果你想做得更多,你可以在每次之前使用一个额外的 例如:
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
如果你需要更清楚的解释,请告诉我,我可以为你准备一把小提琴
谢谢
Jordan我想象调用
模块(…)
会返回一些有意义的东西,而函数({module(…);}
会返回这个函数(作为beforeach(arg)
的一个参数),即使调用这个函数也不会返回任何东西。你不能在每个函数之前调用几次吗?谢谢Jordan,这很有帮助!乔丹,我需要更清楚的解释,因为我不理解你的解决方案,但我有与@stephenmc相同的错误,请看这里:如果你能帮忙,那就太好了:)