如何在Jasmine中spyOn链接方法调用Restangular?

时间:2016-01-07 19:25:54

标签: angularjs jasmine restangular

我正在使用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();
事情停止了。我无法找到任何关于此的文献。任何帮助表示赞赏。

0 个答案:

没有答案