spyOn 找不到要为 all() 监视的对象

spyOn could not find an object to spy upon for all()

当我想模拟使用 Restangular 创建的 http REST 服务时出现上述错误。 这是我的一段代码:

var someParameter = [{ "id": 1, "name": "Length" }]
   spyOn(Restangular, 'one').and.callThrough();
    it('expect company service to be called', function () {     
        httpBackend.expectGET('http://localhost:8283/com/companies', {
            someParameter: someParameter
        }).respond(mockToReturn);
    });

有没有人遇到过同样的问题issue.And有什么解决办法吗?

我就是这样做的,希望对你有帮助。

var Restangular;
beforeEach(inject(function( _Restangular_) {
    Restangular = _Restangular_;
    spyOn(Restangular, 'all').and.callThrough();
}));

在我看来,您应该在传递给 "it"

的函数内部调用 spyOn
var someParameter = [{ "id": 1, "name": "Length" }]
it('expect company service to be called', function () {
  spyOn(Restangular, 'one').and.callThrough();
  httpBackend.expectGET('http://localhost:8283/com/companies', {
    someParameter: someParameter
  }).respond(mockToReturn);
});