La fixation d'un délai d'attente de gestionnaire sur une promesse en angularjs

Je suis en train de définir un délai d'attente dans mon contrôleur, de sorte que, si une réponse n'est pas reçue dans les 250ms il doit échouer. J'ai mis mon test de l'unité ont un délai d'attente de 10 000 de sorte que cette condition soit remplie,quelqu'un Peut me pointer dans la bonne direction? ( EDIT je suis en train de réaliser cela sans l'aide de l' $http service qui, je le sais fournit délai functinality)

(MODIFIER - mes autres tests unitaires ont été faute parce que je n'étais pas à l'appel de délai d'attente.chasse sur eux, maintenant, j'ai juste besoin d'obtenir le délai d'attente de message de coups de pied dans quand un indéfini promesse est retournée par promiseService.getPromise(). J'ai enlevé le début du code à partir de la question) .

promiseService (promesse est une suite de test de la variable de me permettre d'utiliser des comportements différents pour la même promesse, dans chaque suite de test avant de l'appliquer, par exemple, de rejeter dans l'un, succès dans un autre)

    mockPromiseService = jasmine.createSpyObj('promiseService', ['getPromise']);
    mockPromiseService.getPromise.andCallFake( function() {
        promise = $q.defer();
        return promise.promise;
    })

Fonction de contrôleur qui est testé -

$scope.qPromiseCall = function() {
    var timeoutdata = null;
    $timeout(function() {
        promise = promiseService.getPromise();
        promise.then(function (data) {
                timeoutdata = data;
                if (data == "promise success!") {
                    console.log("success");
                } else {
                    console.log("function failure");
                }
            }, function (error) {
                console.log("promise failure")
            }

        )
    }, 250).then(function (data) {
        if(typeof timeoutdata === "undefined" ) {
            console.log("Timed out")
        }
    },function( error ){
        console.log("timed out!");
    });
}

Test (normalement je résoudre ou de rejeter la promesse ici, mais en ne le définissant pas, je suis de la simulation d'un délai d'attente)

it('Timeout logs promise failure', function(){
    spyOn(console, 'log');
    scope.qPromiseCall();
    $timeout.flush(251);
    $rootScope.$apply();
    expect(console.log).toHaveBeenCalledWith("Timed out");
})
Pouvez-vous nous montrer promiseService.getPromise()?
Il n'est pas encore mis en œuvre que j'essaie de faire ce conçu d'abord, doit-il être lié à la mise en œuvre de la promesse de service?
Comment pouvez-vous dire qu'il ne fonctionne pas si vous n'avez pas encore mise en oeuvre
C'est une unité de test, donc je suis à l'injection de la promiseService.getPromise... que je tape ce que je réalise que je n'ai pas l'injecter du code, en ajoutant maintenant sry
Je ne vois pas le nombre '250' n'importe où dans votre code... comment vous attendez-vous à faire quelque chose après 250 ms?

OriginalL'auteur SMC | 2014-04-10