2016-04-28 111 views
1
PhantomJS 2.1.1 (Windows 7 0.0.0)e Service should get by id from Service FAILED 
    Error: Unexpected request: GET /users/currentuser 
    No more request expected in /static/third-party/angularjs/1.4.7/js/angular-mocks.js (line 1245) 

这是我收到的针对我的服务的错误消息。加入angulartics之前,我不会得到这些消息加入angulartics与angulartics-piwik后茉莉花单元测试失败

有没有什么办法,以确保这些错误不发生

我的测试代码:

beforeEach(function() { 

    module('appHost'); 
    module('angulartics'); 

    inject(function($httpBackend, _Service_) { 

     Service= _Service_; 
     httpBackend = $httpBackend; 
    }); 

}); 

afterEach(function() { 
    httpBackend.verifyNoOutstandingExpectation(); 
    httpBackend.verifyNoOutstandingRequest(); 
}); 

it('should get template by id from Service', function() { 

    var expected = { 
      "name": "my name", 
      "description": "bla bla bla bla", 

     }; 

    var id = "12345"; 
    httpBackend.expectGET("/data/"+id).respond(expected); 
     }); 
+0

你有没有找到这样的解决? – alfthan

回答

1

我也遇到过类似的东西。我的修复只是添加这一行

httpBackend.whenGET(/users/currentuser/).respond(200, ''); 

在每个块之前。然后我得到了另一个错误,因为角度试图获得它自己的模板。我通过修改karma预处理器配置来解决前缀问题。让我知道你是否需要更多的帮助。

0

尝试添加httpBackend.flush()

it('should get template by id from Service', function() { 

    var expected = { 
      "name": "my name", 
      "description": "bla bla bla bla", 

     }; 

    var id = "12345"; 
    httpBackend.expectGET("/data/"+id).respond(expected); 
    httpBackend.flush() 
}); 
+0

对于我来说,httpBackend.flush()触发了“Unexpected request:GET”,我绕过了因果关系的变化。 –