JUnit - uso básico
Vamos agora ter um exemplo básico para demonstrar o processo passo a passo de usar JUnit.
Criar uma aula
Crie uma classe java a ser testada, digamos, MessageUtil.java em 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;
}
}
Criar classe de caso de teste
- Crie uma classe de teste java, digamos, TestJunit.java.
- Adicione um método de teste testPrintMessage () à sua classe de teste.
- Adicione um Annotaion @Test ao método testPrintMessage ().
- Implemente a condição de teste e verifique a condição usando a API assertEquals do JUnit.
Crie um arquivo de classe java com o nome TestJunit.java em 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());
}
}
Criar classe de executor de teste
- Crie uma classe Java TestRunner.
- Use o método runClasses da classe JUnitCore de JUnit para executar o caso de teste da classe de teste criada acima.
- Obtenha o resultado dos casos de teste executados no Objeto Result.
- Obtenha falha (s) usando o método getFailures () do objeto Result.
- Obtenha o resultado de Sucesso usando o método wasSuccessful () do objeto Result.
Crie um arquivo de classe java chamado TestRunner.java em C:\>JUNIT_WORKSPACE para executar caso (s) de teste.
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());
}
}
Compile as classes MessageUtil, Test case e Test Runner usando javac.
C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.java
Agora execute o Test Runner, que executará o caso de teste definido na classe Test Case fornecida.
C:\JUNIT_WORKSPACE>java TestRunner
Verifique a saída.
Hello World
true
Agora atualize TestJunit em C:\>JUNIT_WORKSPACEpara que o teste falhe. Altere a string da mensagem.
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());
}
}
Vamos manter o resto das classes como estão e tentar executar o mesmo 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());
}
}
Agora execute o Test Runner, que executará o caso de teste definido na classe Test Case fornecida.
C:\JUNIT_WORKSPACE>java TestRunner
Verifique a saída.
Hello World
testPrintMessage(TestJunit): expected:<[New Wor]d> but was:<[Hello Worl]d>
false