$httpbackend.flush();
只有在有一些待处理的请求时才可以打电话吗?所以我永远不会得到
错误:未刷新的请求:1,2,3,...,n
或者
错误:没有待处理的刷新请求!
$httpbackend.flush();
只有在有一些待处理的请求时才可以打电话吗?所以我永远不会得到
错误:未刷新的请求:1,2,3,...,n
或者
错误:没有待处理的刷新请求!
根据文档$http.pendingRequests
,您可以使用一个属性。像这样的东西会起作用:
if($http.pendingRequests.length > 0) {
$httpBackend.flush();
}
我不确定这是一个非常好的主意,但应该这样做。
我认为你应该组织你的测试,不要在测试中使用任何“if”。为什么?为了简单易懂地了解实际测试的内容,“if”提供了一种在测试失败时通过测试的方法。
当没有向 API 发出请求时,编写单独的测试函数来测试用例。
阅读测试中的 AAA (Arrange Act Assert) 模式,它将对您有所帮助。
如果您不“期望”任何请求,您可以将调用http.flush(n)
放在 try-catch 块中以忽略异常。
http.whenGet(/* .. */).respond(/*..*/); // maybe implementation needs some data
service.doSomething();
try { http.flush(99); } // resolve all the possible requests my service might have to do
catch(e) {}
expect(service.isAwesome).toBe(true);