J'ai une méthode qui est appelée en utilisant un d3 timer
. Chaque fois que la méthode est appelée, la méthode émet un objet avec un couple de valeurs. L'une des valeurs augmente avec le temps. Je voudrais écrire un test pour vérifier si les valeurs sont dans l'ordre ascendant ou non (c'est-à-dire, augmenter avec le temps ou non). Donc, pour y faire face, Dans mon test, je suis abonné à l'émetteur de l'événement et dans l'abonnement, je pousse l'objet que je reçois dans un tableau local. Et puis, je m'attends à ce que le array[i]
soit inférieur au array[i+1]
. Je pense que ma logique est parfaitement correcte mais je ne suis pas sûr pourquoi je reçois une erreur de Jasmine en disant que the spec has no expectations
même si j'en ai un.Spec n'a pas d'attentes - Jasmine tester la fonction de rappel
Voici le code:
let x = d3.timer((elapsed) => {
this.method(); // call the function
if(elapsed >= 500) {
x.stop(); // stops the timer.
}
});
method(elapsed) {
// do something
if(elapsed > 500) {
this.output.emit({x: somevalue, y: somevalue, f: increasingvalue });
}
}
Jasmine Spec:
it('my spec', inject([JumpService], (service: JumpService) =>{
array = [];
//service calls the method
service.output.subscribe(e => {
array.push(e);
// A console statement here will give me the length and the object pushed.
for(let i = 0; i< array.length - 1; i++) {
expect(array[i].f).toBeLessThan(array[i+1].f);
}
});
}));
que je fais quelque chose de mal ici? Comment puis-je m'attaquer à un tel scénario? S'il vous plaît, guidez-moi dans la bonne direction.
Merci.
Damnnn. done() travaillé. Si simple. Merci beaucoup. J'ai abandonné complètement. À votre santé. – zelda