JUnit - Marco de prueba
JUnit es un Regression Testing Frameworkutilizado por los desarrolladores para implementar pruebas unitarias en Java, y acelerar la velocidad de programación y aumentar la calidad del código. JUnit Framework se puede integrar fácilmente con cualquiera de los siguientes:
- Eclipse
- Ant
- Maven
Características de JUnit Test Framework
El marco de prueba JUnit proporciona las siguientes características importantes:
- Fixtures
- Suites de prueba
- Corredores de prueba
- Clases de JUnit
Accesorios
Fixtureses un estado fijo de un conjunto de objetos que se utiliza como línea de base para ejecutar pruebas. El propósito de un dispositivo de prueba es garantizar que exista un entorno bien conocido y fijo en el que se ejecuten las pruebas para que los resultados sean repetibles. Incluye -
- método setUp (), que se ejecuta antes de cada invocación de prueba.
- tearDown () método, que se ejecuta después de cada método de prueba.
Veamos un ejemplo:
import junit.framework.*;
public class JavaTest extends TestCase {
protected int value1, value2;
// assigning the values
protected void setUp(){
value1 = 3;
value2 = 3;
}
// test method to add two values
public void testAdd(){
double result = value1 + value2;
assertTrue(result == 6);
}
}
Suites de prueba
Un conjunto de pruebas agrupa algunos casos de prueba unitarios y los ejecuta juntos. En JUnit, las anotaciones @RunWith y @Suite se utilizan para ejecutar la prueba de la suite. A continuación se muestra un ejemplo que usa las clases de prueba TestJunit1 y TestJunit2.
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
//JUnit Suite Test
@RunWith(Suite.class)
@Suite.SuiteClasses({
TestJunit1.class ,TestJunit2.class
})
public class JunitTestSuite {
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;
public class TestJunit1 {
String message = "Robert";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
assertEquals(message, messageUtil.printMessage());
}
}
import org.junit.Test;
import org.junit.Ignore;
import static org.junit.Assert.assertEquals;
public class TestJunit2 {
String message = "Robert";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Robert";
assertEquals(message,messageUtil.salutationMessage());
}
}
Corredores de prueba
El corredor de pruebas se utiliza para ejecutar los casos de prueba. Aquí hay un ejemplo que asume la clase de pruebaTestJunit ya existe.
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());
}
}
Clases de JUnit
Las clases de JUnit son clases importantes que se utilizan para escribir y probar JUnits. Algunas de las clases importantes son:
Assert - Contiene un conjunto de métodos de aserción.
TestCase - Contiene un caso de prueba que define el dispositivo para ejecutar múltiples pruebas.
TestResult - Contiene métodos para recopilar los resultados de la ejecución de un caso de prueba.