Guarda un rapporto JUnit. JUnit è già organizzato per pacchetto. Ogni pacchetto ha (o può avere) classi TestSuite, ognuna delle quali a sua volta esegue più TestCase. Ciascun TestCase può avere più metodi di test del modulopublic void test*()
, ognuno dei quali diventerà effettivamente un'istanza della classe TestCase a cui appartengono. Ogni metodo di test (istanza TestCase) ha un nome e un criterio pass / fail.
Ciò che la mia gestione richiede è il concetto di singoli elementi TestStep , ognuno dei quali riporta i propri criteri di superamento / fallimento. Il fallimento di qualsiasi fase del test non deve impedire l'esecuzione delle fasi successive del test.
In passato, gli sviluppatori di test nella mia posizione organizzavano le classi TestCase in pacchetti che corrispondono alle parti del prodotto in prova, creavano una classe TestCase per ciascun test e trasformavano ciascun metodo di test in un "passaggio" separato nel test, completo con i propri criteri pass / fail nell'output JUnit. Ciascun TestCase è un "test" autonomo, ma i singoli metodi o test "passaggi" all'interno del TestCase devono avvenire in un ordine specifico.
I metodi TestCase sono stati i passaggi di TestCase e i progettisti di test hanno ottenuto un criterio di superamento / fallimento separato per fase di test. Ora i passaggi del test sono confusi e i test (ovviamente) falliscono.
Per esempio:
Class testStateChanges extends TestCase
public void testCreateObjectPlacesTheObjectInStateA()
public void testTransitionToStateBAndValidateStateB()
public void testTransitionToStateCAndValidateStateC()
public void testTryToDeleteObjectinStateCAndValidateObjectStillExists()
public void testTransitionToStateAAndValidateStateA()
public void testDeleteObjectInStateAAndObjectDoesNotExist()
public void cleanupIfAnythingWentWrong()
Ogni metodo di prova afferma e riporta i propri criteri di superamento / fallimento separati. La compressione di questo in "un unico metodo di prova" per motivi di ordinazione perde la granularità dei criteri pass / fail di ogni "passaggio" nel rapporto di riepilogo di JUnit. ... e questo sconvolge i miei manager. Attualmente stanno chiedendo un'altra alternativa.
Qualcuno può spiegare come una JUnit con l'ordinamento del metodo di test criptato supporterebbe criteri separati pass / fail di ciascuna fase del test sequenziale, come esemplificato sopra e richiesto dalla mia direzione?
Indipendentemente dalla documentazione, vedo questo come una grave regressione nel framework JUnit che sta rendendo la vita difficile a molti sviluppatori di test.