ho alcuni test come questo:Come fare JUnit stampare afferma e risultati
@Test
public void test01()
{
Position p = getPositionAt('a', 1);
assertNotNull("a1 exists", p);
assertNotNull("figure exists a1", p.getFigure());
p = getPositionAt('a', 2);
assertNotNull("exists a2", p);
assertNull("figure exists a2", p.getFigure());
p = getPositionAt('b', 1);
assertNotNull("exists b1", p);
assertNull("figure exists b1", p.getFigure());
}
Che cosa ho bisogno durante l'esecuzione di test è quello di stampare ogni messaggio di asserzione stdout e poi risultato della assert.
Questo è formato da richiede classe di test:
a1 exists -success
figure exists a1 -success
exists a2 -success
figure exists a2 -succcess
exists b1 -succcess
figure exists b1 -failed
Ma come fare? Sono abbastanza nuovo con JUnit e non ne ho idea. C'è modo di utilizzare runners
e suites
? O esistono i metodi assertSuccess()
, assertFailed()
? Grazie per qualsiasi suggerimento.
Tra l'altro, il parametro 'message' è applicabile solo quando l'asserzione non riesce, in modo che il' messaggio assertNotNull' dovrebbe essere effettivamente "a1 non esiste "ecc ... – Jonathan
qualche motivo particolare per cui vorresti questo? –
Entrambi i tuoi bisogni potrebbero essere considerati un anti-modello nel mondo dei test unitari. I test dovrebbero asserire solo una cosa, quindi non ci dovrebbero essere motivi per volere un'affermazione non-fallimentare.I test devono essere automatizzati con tutte le verifiche effettuate dagli esperti, quindi non ci dovrebbe essere bisogno di una stampa per l'ispezione manuale. In pratica, ci sono buone ragioni per volere il primo, come l'esecuzione di test basati su tabelle e la necessità di più chiamate di asserzione per verificare un fatto logico. Diffida del secondo, però. L'automazione è l'unica soluzione per i test di unità e di regressione. – user7610