JUnit - Prueba de tiempo
JUnit proporciona una práctica opción de tiempo de espera. Si un caso de prueba lleva más tiempo que el número especificado de milisegundos, JUnit lo marcará automáticamente como fallido. lostimeoutEl parámetro se usa junto con la anotación @Test. Veamos el @Test (tiempo de espera) en acción.
Crear una clase
Cree una clase de Java para probar, digamos, MessageUtil.java en C: \> JUNIT_WORKSPACE.
Agrega un bucle while infinito dentro del método printMessage ().
/*
* 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 void printMessage(){
System.out.println(message);
while(true);
}
// 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, digamos, TestJunit.java. Agregue un tiempo de espera de 1000 al caso de prueba 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);
@Test(timeout = 1000)
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
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 ejecutará los casos de prueba definidos en la clase Test Case proporcionada.
C:\JUNIT_WORKSPACE>java TestRunner
Verifique la salida. El caso de prueba testPrintMessage () marcará la prueba unitaria como fallida.
Inside testPrintMessage()
Robert
Inside testSalutationMessage()
Hi!Robert
testPrintMessage(TestJunit): test timed out after 1000 milliseconds
false