Karma Jasmine AngularJS使用真实的HTTP请求进行测试

时间:2015-09-02 02:49:15

标签: angularjs jasmine phantomjs karma-jasmine grunt-contrib-jasmine

我想用真正的API调用来测试我的代码(所以我也可以测试API,当我更改API时,我也不必更改JS测试,而且还有很多好处。)常规$httpBackend.expectPOST('http://api.com/login').response(200)

基本上,我想测试期望通过ProductsController方法登录的AuthService.login(),并通过ui-router的{​​{1}}功能接收产品列表。

在这种情况下,resolve方法接收需要用于收集产品的数据。

1 个答案:

答案 0 :(得分:2)

来自此处的$ httpBackend文档:https://docs.angularjs.org/api/ngMockE2E/service/ $ httpBackend

  

与单元测试相反,在端到端测试场景中或在使用模拟替换真实后端api开发应用程序的情况下,通常希望某些类别的请求绕过模拟并发出真实的http请求(例如,从Web服务器获取模板或静态文件)。要使用此行为配置后端,请使用passThrough请求处理程序而不是响应

所以,比如:$ httpBackend.whenGET(/.*/)。passThrough();应该就够了。