如何用备用模拟服务器替换$ httpBackend?

vpi*_*mph 5 javascript mocking angularjs

我正在使用Angular(1.2.x)单元测试ngMock.我的项目有一个依赖的夹具系统sinon.fakeServer.对于我的单元测试,我更喜欢使用它而不是$httpBackend.

ngMockE2E测试Angular提供了一种passthrough方法,但单元测试没有明确的等价物.的理由似乎是单元测试不应该穿通(到服务器),但在我的情况,我只是想通过一个非角依存的模拟.

我现在的策略是创建一个匹配.whenGet.whenPost请求并将它们路由到我的假服务器的垫片.

然而,更好的是简单地"关闭" $httpBackend.有没有办法做到这一点?

小智 1

这个解决方案可能有效。

\n\n

所以建议使用ngMockE2E\xe2\x80\x99s $httpBackend。实际上,如果您的测试引起 XHR 请求,那么它不是“单元测试”。

\n

  • 虽然这在理论上可以回答这个问题,但[最好](​​//meta.stackoverflow.com/q/8259) 在此处包含答案的基本部分,并提供参考链接。 (3认同)