2016-03-29 17 views
0

Ich fand this article, wie Sie eine künstliche Serververzögerung bei der Verwendung von $ httpBackend für Mocking Daten erstellen.

Gibt es überhaupt eine Möglichkeit, dies pro Schein zu haben? Vielleicht so etwas wie:

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

ODER

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

Antwort

1

können Sie angular-mocke2e-maydelay

verwenden, wenn Sie bower

bower install angular-mocke2e-maydelay 

in index.html

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

Fügen Sie diese auf Ihre App

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

In den Tests der unmocked $httpBackend kann wie folgt verwendet werden, um die Reaktion zu verzögern.

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

Dieser Feature-Request bereits in der AngularJS geschrieben repo