admin管理员组

文章数量:1434893

I'm trying a very simple test with Karma/Jasmine, to unit test my AngularJS app. This seems to work

beforeEach(
        module('myApp')
);

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

while this doesnt

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

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

I want to be able to do other stuff beforeEach test suite, but it's not giving me any meaningful errors to be able to debug it, the only one I see is

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

relating to the line where the function is called within the beforeEach construct in the second example.

Im hoping someone else has e across this and can assist?

Thanks Stephen

I'm trying a very simple test with Karma/Jasmine, to unit test my AngularJS app. This seems to work

beforeEach(
        module('myApp')
);

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

while this doesnt

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

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

I want to be able to do other stuff beforeEach test suite, but it's not giving me any meaningful errors to be able to debug it, the only one I see is

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

relating to the line where the function is called within the beforeEach construct in the second example.

Im hoping someone else has e across this and can assist?

Thanks Stephen

Share Improve this question edited May 12, 2016 at 20:14 isherwood 61.2k16 gold badges122 silver badges170 bronze badges asked Mar 14, 2014 at 16:34 stephen mcstephen mc 7912 gold badges12 silver badges22 bronze badges 2
  • I imagine that calling module(..) returns something meaningful and function(){ module(..); } return this function (as an argument to beforeEach( arg )) Even calling that function doesnt return anything. – EricG Commented Mar 14, 2014 at 16:37
  • Can't you call beforeEach several times, can you? – chr1s1202 Commented Mar 14, 2014 at 16:47
Add a ment  | 

1 Answer 1

Reset to default 5

Thats just how you declare your module. If you want to do more you can just use an additional beforeEach.

For Example:

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

Let me know if you need more clarity on this and I can put together a fiddle for you.

Thanks,

Jordan

本文标签: javascriptModule not found error in AngularJS unit testStack Overflow