JUnit - Utilizzo di base
Facciamo ora un esempio di base per dimostrare il processo passo passo dell'utilizzo di JUnit.
Crea una classe
Crea una classe java da testare, ad esempio MessageUtil.java in C:\>JUNIT_WORKSPACE
/*
* This class prints the given message on console.
*/
public class MessageUtil {
private String message;
//Constructor
//@param message to be printed
public MessageUtil(String message){
this.message = message;
}
// prints the message
public String printMessage(){
System.out.println(message);
return message;
}
}
Crea classe test case
- Crea una classe di test java, ad esempio TestJunit.java.
- Aggiungi un metodo di test testPrintMessage () alla tua classe di test.
- Aggiungi un Annotaion @Test al metodo testPrintMessage ().
- Implementa la condizione di test e verifica la condizione utilizzando l'API assertEquals di JUnit.
Crea un file di classe java con nome TestJunit.java in C:\>JUNIT_WORKSPACE.
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
assertEquals(message,messageUtil.printMessage());
}
}
Crea classe Test Runner
- Crea una classe java TestRunner.
- Utilizzare il metodo runClasses della classe JUnitCore di JUnit per eseguire il test case della classe di test sopra creata.
- Ottieni il risultato dei casi di test eseguiti nell'oggetto risultato.
- Ottieni errori utilizzando il metodo getFailures () dell'oggetto Result.
- Ottieni il risultato Success utilizzando il metodo wasSuccessful () dell'oggetto Result.
Crea un file di classe java denominato TestRunner.java in C:\>JUNIT_WORKSPACE per eseguire uno o più casi di test.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Compilare le classi MessageUtil, Test case e Test Runner utilizzando javac.
C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.java
Ora esegui il Test Runner, che eseguirà il test case definito nella classe Test Case fornita.
C:\JUNIT_WORKSPACE>java TestRunner
Verifica l'output.
Hello World
true
Ora aggiorna TestJunit in C:\>JUNIT_WORKSPACEin modo che il test fallisca. Modifica la stringa del messaggio.
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
message = "New Word";
assertEquals(message,messageUtil.printMessage());
}
}
Manteniamo il resto delle classi così com'è e proviamo a eseguire lo stesso Test Runner.
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Ora esegui il Test Runner, che eseguirà il test case definito nella classe Test Case fornita.
C:\JUNIT_WORKSPACE>java TestRunner
Verifica l'output.
Hello World
testPrintMessage(TestJunit): expected:<[New Wor]d> but was:<[Hello Worl]d>
false