0

我发现这篇文章如何在使用 $httpBackend 模拟数据时创建人工服务器延迟。

有没有办法在每个模拟的基础上拥有这个?也许是这样的:

    $httpBackend
        .whenGET(/\/my\/endpoint$/)
        .respond(data, 2000);

或者

   $httpBackend
        .whenGET(/\/my\/endpoint$/)
        .withDelay(2000)
        .respond(data);
4

1 回答 1

1

您可以使用angular-mocke2e-maydelay

如果你使用bower

bower install angular-mocke2e-maydelay

index.html中

<script src="/bower_components/angular-mocks/angular-mocks.js">    </script>
<script src="/bower_components/angular-mocke2e-maydelay/angular-mocke2e-maydelay.js"></script>

将此添加到您的应用中

angular.module('app', ['ngMockE2E', 'mayDelay'])

在测试中,$httpBackend可以如下使用 unmocked 来延迟响应。

$httpBackend.whenGET('/foo.json').respond({foo:"bar"}, 3000); //delay 3s
$httpBackend.whenPOST('/bar',{foo:"bar"}).respond(200, "succeed", 5000); //delay 5s

此功能请求已发布在 angularjs 存储库中

于 2016-03-29T15:03:51.663 回答