gpt4 book ai didi

javascript - 测试未以 Angular 发出 ajax 请求

转载 作者:行者123 更新时间:2023-11-29 15:41:06 28 4
gpt4 key购买 nike

在使用 Angular $httpBackend 时,我该如何测试没有发出 ajax 请求。我试过使用 verifyNoOutstandingRequest() 但(至少在 v1.1.5 中)它似乎永远不会导致测试失败。

场景的更多细节

我的数据库模块使用 ngResource 连接到我的服务器端数据库。我已将其设置为 GET all 缓存客户端,因此只有第一次调用我的 getTable('tableName') 方法时才会触发 ajax 请求。因此,有问题的测试需要验证第一个调用发出了 ajax 请求,但第二个调用没有

最佳答案

如果您希望您的测试在发出不应该的请求时失败,只需确保您没有为它定义 expect 方法。如果 Angular 收到非预期的请求,它会抛出错误。

您必须为发出的每个请求编写一个excpect 方法,因此您将有一个expect 用于第一次调用getTable那实际上应该发出请求,然后如果出于某种原因,在此之后尝试请求,Angular 将抛出错误并且您的测试将失败。

所以你的测试主体看起来像这样:

$httpBackend.expectGET("request_url");
getTable("tableName");
$httpBackend.flush();
//no error because it was expecting a request
getTable("tableName"); //will throw an error if it actually tries to make a request

关于javascript - 测试未以 Angular 发出 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18903613/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com