我正在使用jasmine为angularJS工厂编写单元测试,该工厂返回对Restangular的调用。举个例子,
function funcToBeTested(params) {
return Restangular.all('/foo').getList(params);
}
可以直接测试是否在Restangular上调用all()。如何在all()返回后测试是否在返回的Restangular对象上调用getList()?
此刻,我有
beforeEach(function() {
module('ui.router');
module('myService');
module('restangular');
});
describe('funcToBeTested', function() {
beforeEach(function() {
httpBackend.expectGET('/foo').respond([]);
});
it('should call all on Restangular', function() {
spyOn(Restangular, 'all').and.callThrough();
funcToBeTested({});
httpBackend.flush();
expect(Restangular.all).toHaveBeenCalled();
});
});
如果我尝试遵循相同的模式并按照
的方式行事expect(Restangular.all.getList).toHaveBeenCalled();
事情停止了。我无法找到任何关于此的文献。任何帮助表示赞赏。