L'unico motivo per cui un test dell'unità potrebbe non riuscire è se il tempo è coinvolto (soprattutto nel caso di test elettronici). Tuttavia, anche se tali casi, dovrebbe essere l'obiettivo di rimuovere il problema di temporizzazione dal test unitario, ad es. estendendo/cambiando il timeout o altri problemi di temporizzazione se possibile. Quando non è possibile, dovrebbe essere ben documentato.
Un altro modo per rimuovere i problemi di temporizzazione e rendere deterministici i test è scrivere gli stub per tutte le interfacce esterne, con qualche metodo di iniezione, cioè essere in grado di impostare valori che restituiranno i metodi di interfaccia esterna. Impostando un test unitario in questo modo, puoi testare letteralmente tutto anche ogni condizione di errore.
(storia: ho lavorato presso una società dove diversi test di unità sarebbero falliscono occasionaly Solo poche persone erano in grado di analizzare se quelle erano gravi errori o un problema di temporizzazione Ciò consentirà di risparmiare un sacco di tempo per fare le buone prove di unità a.. il primo posto).
fonte
2012-08-14 23:44:06
+1 per separare * unit * test che convalidano la correttezza del programma dai test di * accettazione * che convalidano che il programma soddisfa i requisiti specificati. –