Questo è normalmente ciò che si desidera quando si esegue il test dell'unità: in caso contrario, esegui rapidamente. Cioè fallire al primo problema in ogni funzione di test. Inoltre, i test successivi generalmente presuppongono che i test precedenti siano passati, ad es. se il titolo della pagina è errato e dice 404, non c'è motivo di verificare che il numero corretto di immagini sia sulla pagina.
sto indovinando si desidera che questo modo che è possibile ottenere ulteriori informazioni nei risultati del test, e un modo per farlo sarebbe quello di utilizzare un solo affermare e un messaggio di errore personalizzato:
var title = this.getTitle();
var linkText = this.getHTML('a#testLink');
this.assert(title == "MyPage" && linkText == "continue",
"title=" + title + ";a#testLink = " + linkText);
Ma questo può diventare disordinato Se si desidera utilizzare tutta la potenza del assert
famiglia di funzioni, e non li hanno buttare, ma invece proseguire, uno studio di the source code dimostra che questo potrebbe funzionare:
test.assert(false, null, {doThrow:false});
test.assertEquals(1 == 2, null, {doThrow:false});
test.assertEquals(2 == 2);
E se si vuole che questa sia la comportamento predefinito su tutti i tuoi asserimenti, beh, l'hacking del codice potrebbe essere la scelta migliore! (Modificare il valore predefinito di true
per doThrow
essere false
.)
fonte
2015-01-04 10:59:07
Per Unit Testing questo comportamento è ciò che di solito vuole. Potresti usare un approccio di "verifica", che controlla ma non interrompe l'esecuzione del test (come suggerito nella risposta sotto). Avendo questa situazione come te descrivi di solito segnali sulla cattiva progettazione del test. Test troppo in una volta. La soluzione sarebbe divisa in test separati. – buxter