aLinux14 ha scritto:
Ho lanciato alcuni test ( nomi: test1 e test2), tutti appartenenti alla stessa classe (ComunicazioniTest). Come ordine ho imposto l'ordinamento in base al nome, quindi test1 poi test2 (controllato anche tramite apposito file di log dove scrivo una frase iniziale per essere sicuro che prima si svolga test1 e poi test2).
Il problema è che in test1 setto una variabile globale che poi test2 trova impostata a null. Come mai ? C'è modo di ovviare alla cosa ?
Uso Junit 4.12
Innanzitutto ciascun test case dovrebbe essere
indipendente dagli altri. Creare test case dipendenti da altri (se tecnicamente possibile a seconda del framework di test usato) può risultare critico. E l'ordine di esecuzione dei test non dovrebbe quindi importare.
E poi comunque dovresti precisare cosa intendi per "variabile globale". Se intendi una variabile "di classe" (static), allora è davvero globale e unica.
Se invece intendi "di istanza" (non static) c'è una questione importante: per ogni metodo di test da invocare, JUnit crea una
nuova istanza della classe di test su cui poi invoca il metodo di test. In sostanza: con JUnit le variabili di istanza NON possono essere usate per "passare" dati tra i metodi di test, anche volendoli fare dipendenti.
Quindi, pur non sapendo cosa stai facendo di preciso, rivedi la logica dei test.