Angularjs 如何在Jasmine中使用spyOn链式方法调用Restangular?
我使用jasmine为angularJS工厂编写单元测试,该工厂返回对Restangular的调用。比如说,Angularjs 如何在Jasmine中使用spyOn链式方法调用Restangular?,angularjs,jasmine,restangular,Angularjs,Jasmine,Restangular,我使用jasmine为angularJS工厂编写单元测试,该工厂返回对Restangular的调用。比如说, function funcToBeTested(params) { return Restangular.all('/foo').getList(params); } 测试是否在Restangular上调用all()很简单。在all()返回后,如何测试是否对返回的Restangular对象调用getList() 目前,我有 beforeEach(function() { mod
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();
事情停止了。我找不到任何关于这方面的文献。非常感谢您的帮助。请查看
Restangular.restangularizeCollection
-类似于-。使用它,您可以包装您的httpbackend
结果,然后包装'restangularized'模型的getList
。我还没试过,但应该可以。看看Restangular.restangularizeCollection
-类似于-。使用它,您可以包装您的httpbackend
结果,然后包装'restangularized'模型的getList
。我还没试过,但应该可以用。