Il modulo di test su nastro di substack consente di specificare in anticipo il numero di asserzioni con il metodo plan
, quindi chiamerà automaticamente end
. Perché non mettere semplicemente end
alla fine di un test? Qual è la differenza tra l'utilizzo di plan
e end
?Qual è lo scopo dell'uso di "piano" o "fine" nel sottotack/nastro?
5
A
risposta
4
The first example on the readme indica una situazione in cui plan
funziona ma non end
- risoluzione di test asincrona. In questo caso, non stai dicendo esplicitamente quando i test dovrebbero essere tutti si sono risolti, che stai dicendo quanti alla fine dovrebbe risolvere:
test('timing test', function (t) {
t.plan(2);
t.equal(typeof Date.now, 'function');
var start = Date.now();
setTimeout(function() {
t.equal(Date.now() - start, 100);
}, 100);
});
Se stavamo usando end
, il modo intuitivo per scrivere questo test potrebbe essere il seguente:
test('timing test', function (t) {
t.equal(typeof Date.now, 'function');
var start = Date.now();
setTimeout(function() {
t.equal(Date.now() - start, 100);
}, 100);
t.end();
});
... ma questo sarebbe terminare il test prima che la seconda affermazione ha avuto la possibilità di correre.
È possibile estrapolare ulteriormente a qualsiasi tipo di situazione in cui il codice asincrono o dinamico deve essere eseguito.