Ho recentemente iniziato a utilizzare QUnit per testare il mio codice JavaScript e sono un po 'confuso da una funzionalità inclusa nella documentazione: expect()
.Perché dovrei mai usare expect() quando si scrive test con QUnit?
Secondo la documentazione, expect()
è progettato per:
[s] pecify quanti asserzioni si prevede di eseguire all'interno di un test.
Ed ecco l'esempio che danno:
test("a test", function() {
expect(2);
function calc(x, operation) {
return operation(x);
}
var result = calc(2, function(x) {
ok(true, "calc() calls operation function");
return x * x;
});
equal(result, 4, "2 square equals 4");
});
L'unica cosa che vedo qui è la manutenzione incubo. Ogni volta che aggiungi un'asserzione a un test, devi aggiornare quel numero o il test fallirà. Esiste un'applicazione pratica per questo tipo di funzionalità?
Completa ipotesi da parte di qualcuno che conosce bugger tutto su QUnit: Può essere usato come una guardia contro loop infiniti. Sembra imporre un limite massimo, non un minimo, quindi puoi usare 'expect (100)' (o simili) e dovrebbe andare bene. –
Questo è sbagliato, non è né un minimo né un massimo, definisce l'esatto ammontare di asserzioni che ti aspetti. Se il numero è al di sotto o al di sopra della durata, il test fallirà. – Odi