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

ste*_* mc 3 javascript jasmine angularjs gruntjs karma-runner

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

beforeEach(
        module('myApp')
);

it('should blah', function () {
    expect(true).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)

虽然这没有

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

it('should blah', function () {
    expect(true).toBe(true);
});
Run Code Online (Sandbox Code Playgroud)

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

TypeError: 'undefined' is not an object (evaluating 'currentSpec.queue.running')
Run Code Online (Sandbox Code Playgroud)

与第二个例子中beforeEach构造中调用函数的行有关.

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

谢谢Stephen

Jor*_*leo 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢,

约旦