gpt4 book ai didi

angularjs - Angular $httpBackend 如何模拟错误响应?

转载 作者:行者123 更新时间:2023-12-02 23:44:46 24 4
gpt4 key购买 nike

我正在尝试测试我的程序是否正确处理从 http 请求中收到的错误消息,但我不知道如何使用 $httpBackend 来模拟它。鉴于以下情况:

$httpBackend.expectGET(path).respond(400, object);

400设置response.status,object设置response.data,但是如何设置response.error?我需要测试的数据不在数据字段中。

API 响应示例:

{
status: 400,
data: {},
error: {}
}

最佳答案

代码...

$httpBackend.expectGET(path).respond(400, object);

表示当代码向“路径”端点发出请求时,使用 400 状态代码和响应“对象”进行响应

例如,假设您的单元测试在您的应用程序中命中了此代码...

$http.GET(path).then(function(response) {
// this code is hit with 2xx responses
vm.fred = 'hello';
}).catch(function(errorResponse) {
// this code is hit with any status code not starting with 2! e.g. 400
vm.fred='failed';
});

因此您的代码将导致 catch block 被执行。但是,在单元测试中,要强制执行 catch block ,您需要执行...

$rootScope.$digest();

这将触发 then 或 catch block 的执行(以相关者为准)。

然后您可以像往常一样在单元测试中做出期望。请注意,在您的示例中,errorResponse 将是对象。

关于angularjs - Angular $httpBackend 如何模拟错误响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36314496/

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