2011-08-24 8 views
7

Utilizzo Eclipse (Helios), ho potuto creare un file di test JUnit ClassATest.java del file sorgente ClassA.java utilizzando Nuovo -> Custodia JUnit Test -> classe in prova ..., quindi scegliere tutti i metodi di ClasseA a essere testatoEclipse: come aggiornare un file di test JUnit con il metodo appena aggiunto nel file sorgente?

Se poi aggiungiamo alcuni metodi più per ClassA, come possiamo riflettere facilmente questa aggiunta in ClassATest? (Nessuna copia/incolla plz).

risposta

2

Una soluzione è quella di utilizzare MoreUnit

Con MoreUnit installato a Eclipse, si può fare clic destro su il metodo appena aggiunto (e non ancora testato), e scegli "Genera test"

Naturalmente, se si segue sempre lo stile del metodo di scrittura-prova-prima-scrittura, allora questa soluzione non è necessaria. Tuttavia, in realtà a volte non hai una chiara idea di cosa vorresti fare, in tal caso dovresti programmare un po 'di metodo, giocarci, quindi ripensare e codificare di nuovo finché non sei soddisfatto del codice e vuoi per renderlo stabile aggiungendo unit test.

+0

Come MoreUnit può aggiungere un nuovo metodo di prova per un metodo appena creato nella mia classe sulla classe di test della junit esistente? Quel Generate Test genererà una nuova classe di test ma non un nuovo metodo di test in aggiunta alla classe di test esistente. Mi manca qualcosa? Sto usando Eclipse Luna – 5YrsLaterDBA

+0

@ 5YrsLaterDBA: su Kepler genera un nuovo metodo di test in una classe di test esistente. Lo sto vedendo con TestNG. Forse l'autore di MoreUnit non ha ancora fornito l'uscita per Luna? – CuongHuyTo

0

Si dovrebbe guardare anche la creazione di una suite di test JUnit che eseguirà tutti i test all'interno delle classi specificate. Pertanto, aggiungere nuovi casi di test è semplice come creare una nuova classe e aggiungerla all'elenco @ Suite.SuiteClasses (come mostrato di seguito).

Ecco un esempio.

Esempio JUnit Test Suite Classe: Classe

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    TestClassFoo.class 
}) 
public class ExampleTestSuite {} 

Test Case Esempio:

public class TestClassFoo { 
    @Test 
    public void testFirstTestCase() { 
     // code up test case 
    } 
} 
+1

Ciao Uperez, la mia domanda riguarda l'aggiornamento automatico di TestClassFoo se ci sono NUOVI metodi in ClassFoo. – CuongHuyTo