2016-01-22 72 views
2

我们有一组测试用例,这是许多不同形式的常见测试用例。 一些表单可能会触发一个懒惰的加载器,它会在指令的post部分预取一些数据,因此会触发HTTP GET。AngularJS茉莉花测试 - 如何跳过请求

在公共测试的beforeEach,我因此必须处理它,否则我得到 意外的请求:GET/BLA /请求/ generateJson /东西没有更多的要求预计

我加$ httpBackend.when(“GET ”,// generateJson /(.+)/)响应();在范围之前。$ digest();在测试的beforeEach。现在,错误修改

错误:未刷新请求:1

添加 $ httpBackend.flush();

导致当GET呼叫被解雇通过测试的情况,但是所有测试用例不火GET,失败,错误

错误:没有挂起的请求刷新!

我该如何处理?我只是想让这个测试完全忽略GET,不管它是否存在。我可以以某种方式确定GET是否已被解雇,并因此对刷新做出反应?

回答

0

您可以使用verifyNoOutstandingRequest()方法验证是否未对$httpBackend模拟进行调用。您还可以使用verifyNoOutstandingExpectation()方法验证对后端的预期呼叫是否成功。所以,你的代码将是这个样子:

更多信息,请$httpBackenddocs页面上找到。另外,请查看this关于GitHUb的讨论。