我正在尝试在我的 AngularJS 项目中测试服务。我要做的就是查看我的服务上的方法是否已调用。我认为当您在 jasmine 中使用“and.callThrough()”时,它会为您调用该方法,然后您可以查看它是否被调用。但是,当我测试我的功能时,业力给了我“预计 getArtists 的间谍已被调用”的响应。
describe('Practice', function(){
beforeEach(module('MyApp'));
var ctrl, loadArtists, rootscope, dataFactory;
beforeEach(inject(function($controller, $rootScope, DataFactory){
spyOn(DataFactory, 'getArtists').and.callThrough();
dataFactory = DataFactory
rootscope = $rootScope;
scope = rootscope.$new();
ctrl = $controller('LaunchCtrl',{scope: scope, artistsPicsRotate: []});
}));
it('should do nothing',function(){
expect(ctrl.artistsPicsRotate).toEqual([])
});
it('should call through DataFactory', function(){
expect(dataFactory.getArtists).toHaveBeenCalled();
expect(dataFactory.getArtists.calls.count()).toEqual(1);
});
});
任何关于为什么这不起作用的想法将不胜感激。