Ich verwende Mocha, um Tests für eine Node-API zu schreiben. In einem Test muss ich 2 Aktionen ausführen und den Zeitstempel jedes einzelnen vergleichen und sicherstellen, dass sie unterschiedlich sind. Um das zu tun, muss ich die Testausführung für mindestens eine Sekunde zuverlässig anhalten. Ich habe versucht, setTimeout
zu verwenden, um die Mocha-Ausführung vor dem zweiten Aufruf an ping
anzuhalten, aber es passiert nicht.Verwenden von setTimeout() Pausieren eines Mocha-Tests
it('should insert then update the timestamp.', function(done) {
Do.ping('arg1', function(err, result) {
should.not.exist(err);
setTimeout(Do.ping('arg1', function(err, result) {
// Test that the timestamp of the first ping is before the timestamp
// of the second ping (among other things)
done();
}), 1000);
});
});
Wer sieht, was ich hier gebohrt habe? Alternativ, gibt es eine bessere (d. H. Mehr Mocha-ish) Art zu tun, was ich versuche zu tun?
Danke. Ich habe das Sinon-Paket ausprobiert, um die JS-Uhr zu manipulieren, und bis jetzt hat das ziemlich gut funktioniert. –