JUnit - Ignorar prueba
A veces sucede que nuestro código no está completamente listo mientras se ejecuta un caso de prueba. Como resultado, el caso de prueba falla. los@Ignore la anotación ayuda en este escenario.
Un método de prueba anotado con @Ignore no se ejecutará.
Si una clase de prueba está anotada con @Ignore, no se ejecutará ninguno de sus métodos de prueba.
Ahora veamos a @Ignore en acción.
Crear una clase
Cree una clase de Java para probar, digamos, MessageUtil.java en 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;
}
// add "Hi!" to the message
public String salutationMessage(){
message = "Hi!" + message;
System.out.println(message);
return message;
}
}
Crear clase de caso de prueba
Cree una clase de prueba de Java, por ejemplo, TestJunit.java.
Agregue un método de prueba testPrintMessage () o testSalutationMessage () a su clase de prueba.
Agregue una Annotaion @Ignore al método testPrintMessage ().
Cree un archivo de clase java llamado TestJunit.java en C: \ JUNIT_WORKSPACE.
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;
public class TestJunit {
String message = "Robert";
MessageUtil messageUtil = new MessageUtil(message);
@Ignore
@Test
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = "Robert";
assertEquals(message,messageUtil.printMessage());
}
@Test
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Robert";
assertEquals(message,messageUtil.salutationMessage());
}
}
Crear clase de corredor de pruebas
Cree un archivo de clase java llamado TestRunner.java en C: \> JUNIT_WORKSPACE para ejecutar caso (s) de prueba.
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 las clases MessageUtil, Test case y Test Runner usando javac.
C:\JUNIT_WORKSPACE>javac MessageUtil.java TestJunit.java TestRunner.java
Ahora ejecute Test Runner, que no ejecutará el caso de prueba testPrintMessage () definido en la clase Test Case proporcionada.
C:\JUNIT_WORKSPACE>java TestRunner
Verifique la salida. El caso de prueba testPrintMessage () no se prueba.
Inside testSalutationMessage()
Hi!Robert
true
Ahora, actualice TestJunit en C: \> JUNIT_WORKSPACE para ignorar todos los casos de prueba. Agrega @Ignore a nivel de clase.
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;
@Ignore
public class TestJunit {
String message = "Robert";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = "Robert";
assertEquals(message,messageUtil.printMessage());
}
@Test
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Robert";
assertEquals(message,messageUtil.salutationMessage());
}
}
Compile el caso de prueba usando javac.
C:\JUNIT_WORKSPACE>javac TestJunit.java
Mantenga su Test Runner sin cambios de la siguiente manera:
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());
}
}
Ahora ejecute Test Runner, que no ejecutará ningún caso de prueba definido en la clase de Caso de prueba proporcionada.
C:\JUNIT_WORKSPACE>java TestRunner
Verifique la salida. No se prueba ningún caso de prueba.
true