Domanda

Ho due classi che sto testando (diamo loro ClassA e ClassB chiamano). Ognuno ha la propria classe di test JUnit (rispettivamente testClassA e testClassB).

ClasseA si basa su ClassB per il suo normale funzionamento, quindi voglio fare in modo ClassB passa i test prima di eseguire testClassA (in caso contrario i risultati di testClassA sarebbe privo di significato).

Qual è il modo migliore per farlo? In questo caso si tratta di un incarico così ho bisogno di tenerlo per le due classi di test specifici, se possibile.

Posso / devo un'eccezione da testClassA se i test di testClassB non sono tutti passati? Ciò richiederebbe testClassB per eseguire in modo invisibile e solo riferire il suo successo / insuccesso per testClassA, piuttosto che l'interfaccia grafica (via JUnit).

Sto usando Eclipse e JUnit 4.8.1

Aggiornamento: Finora il migliore che abbia gestito è un file separato con una suite di test come illustrato di seguito. Questo è ancora non del tutto quello che sto cercando in quanto consente ancora ClassB test da eseguire se non riesce ClasseA alcuni test.

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({testClassA.class, testClassBCode.class})
public class testClassB {
}
È stato utile?

Soluzione

I tuoi test di unità non dovrebbe dipendere da altri test.

Una soluzione per il problema sarebbe quello di prendere in giro ClassB nei test di ClassA, al fine di testare il comportamento indipendentemente dai risultati dei test di ClassB.

vi consiglio di dare Mockito una prova!

Altri suggerimenti

Si dovrebbe cercare TestNG quadro che consente questo tipo di test di dipendenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top