Recentemente ho esaminato alcuni testscripts che assomigliano un po 'a
...
try {
receiveSomething();
// something was received even though it shouldn't
failTest();
} catch (TimeoutException e) {
// nothing should be received
succedTest();
}
Il problema che ho con questi tipi di test è
- Non sono deterministici. Non sai se nulla è stato inviato di proposito o se tutto è andato in crash.
- È molto difficile testare simultaneamente qualcos'altro, che potrebbe effettivamente, in questo caso, inviare qualcosa.
I miei pensieri sono da un lato, come possono essere progettati meglio questi tipi di test, e in secondo luogo può essere un'indicazione di un odore del design più grande del software che viene testato?
Modifica
Per ottenere la clairifica, questi script di test sono utilizzati per il black box-testing di software complesso basato su eventi, non per test di unità, e la mia sensazione è che l'evento 'doing nothing' sia molto ambiguo. :)