尝试在单元测试中创建$ httpBackend.expectGET,以返回状态409和自定义statusText的“TestPhrase”。

查看Angular文档(https://docs.angularjs.org/api/ngMock/service/$httpBackend),它给出了以下返回内容的示例:



无法理解如何解释以上示例。

我当前的代码是:

      $httpBackend
        .expectGET('/example/url')
        .respond(function () {
          return ['409', ['TestPhrase'], {}];
        });

我正在测试的代码是:



我从该测试接收到的控制台输出为:
'error, status 409'
'error, statusText '

预期输出为:
'error, status 409'
'error, statusText TestPhrase'

最佳答案

该文档说:



您正在做第二个选择,传递一个返回数组的函数。这是应该起作用的方法。状态文本是第四项。 (为清楚起见,我包括了可选的函数参数。)

$httpBackend
.expectGET('/example/url')
.respond(function (method, url, data, headers) {
    return [409, 'response body', {}, 'TestPhrase'];
});

10-05 19:45