1

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

本质上,我想测试一个ProductsController期望通过一种方法登录并通过's功能AuthService.login()接收产品列表的产品。ui-routerresolve

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

4

1 回答 1

2

从此处找到的 $httpBackend 文档:https : //docs.angularjs.org/api/ngMockE2E/service/ $httpBackend

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

因此,类似于: $httpBackend.whenGET(/.*/).passThrough(); 应该足够了。

于 2015-09-02T04:00:14.673 回答