JUnit es la unidad más popular Prueba creat en Java. Recomendado explícitamente para Examen de la unidad. JUnit no requiere un servidor para probar una aplicación web, lo que agiliza el proceso de prueba.
El marco JUnit también permite generar casos de prueba y datos de prueba de forma rápida y sencilla. El es org.Junit el paquete contiene muchas interfaces y clases para JUnit Test como Test, Confirm, After, Before, etc.
¿Qué es un accesorio de prueba?
Antes de que entendamos qué es un dispositivo de prueba, estudiemos el siguiente código
Este código está diseñado para ejecutar dos casos de prueba en un archivo simple.
public class OutputFileTest { private File output; output = new File(...); output.delete(); public void testFile1(){ //Code to verify Test Case 1 } output.delete(); output = new File(...); public void testFile2(){ //Code to verify Test Case 2 } output.delete(); }
No hay muchas preguntas aquí.
- El código no es legible
- Mantener el código no es fácil.
- Cuando el conjunto de prueba es complejo, el código puede contener preguntas lógicas.
Compara el mismo código usando JUnit
public class OutputFileTest { private File output; @Before public void createOutputFile() { output = new File(...); } @After public void deleteOutputFile() { output.delete(); } @Test public void testFile1() { // code for test case objective } @Test public void testFile2() { // code for test case objective } }
El código es mucho más legible y sostenible. La estructura de código anterior es una Accesorio de prueba.
Un accesorio de prueba es un contexto en el que un Caso de prueba carreras. Los accesorios de prueba generalmente incluyen:
- Objetos o recursos disponibles para cualquier caso de prueba.
- Actividades necesarias para proporcionar estos objetos / recursos.
- Estas actividades
- asignaciónarreglo)
- la dislocaciónlágrima).
Configuración y desmontaje
- Por lo general, hay una serie de tareas repetitivas que deben realizarse antes de cada caso de prueba. Ejemplo: crear una conexión a la base de datos.
- De manera similar, al final de cada caso de prueba, puede haber varias tareas repetidas. Ejemplo: limpiar cuando se complete la prueba.
- JUnit proporciona anotaciones que ayudan a la fijación y al desgarro. Garantiza que se liberen recursos y que el sistema de prueba esté listo para el siguiente caso de prueba.
Estas notas se analizan a continuación:
Arreglo
@Romh La anotación se utiliza en un método que contiene Java código para ejecutar antes de cada caso de prueba. es decir, se ejecuta antes de cada ejecución de prueba.
Desmontaje (independientemente del veredicto)
@Después La anotación se utiliza en un método en el que el código Java se ejecuta después de cada caso de prueba. Estos métodos se ejecutarán incluso si no se emiten excepciones en el caso de prueba o en el caso de fallas declaradas.
Nota:
- Se permite incluir cualquier número de notas enumeradas anteriormente.
- Todos los métodos anotados con ellos @Romh se ejecutarán antes de cada caso de prueba, pero pueden ejecutarse en cualquier orden.
- Puede heredar los métodos @Before y @After de una superclase, la ejecución es la siguiente: Es un proceso de ejecución estándar en JUnit.
- Ejecute los métodos @Before en la clase superior
- Ejecute los métodos @Before en esta clase
- Ejecute el método @Test en esta clase
- Ejecute los métodos @After en esta clase
- Ejecute los métodos @After en la clase superior
Ejemplo: crear una clase con un archivo como dispositivo de prueba
public class OutputFileTest { private File output; @Before public void createOutputFile() { output = new File(...); } @After public void deleteOutputFile() { output.delete(); } @Test public void testFile1() { // code for test case objective } @Test public void testFile2() { // code for test case objective } }
En el ejemplo anterior, la cadena de ejecución será la siguiente:
- createOutputFile ()
- testFile1 ()
- deleteOutputFile ()
- createOutputFile ()
- testFile2 ()
- deleteOutputFile ()
Suposición: ejecuta testFile1 () antes que testFile2 () – no garantizado.
Configurar una vez
- Un método solo se puede ejecutar una vez para toda la clase de prueba antes y durante cualquiera de las pruebas @Romh métodos).
- «Una vez configurado» es útil para iniciar servidores, abrir comunicaciones, etc. Se necesita tiempo para cerrar y reabrir recursos para cada prueba.
- Esto se puede hacer usando el @Antes de clase anotación
@BeforeClass public static void Method_Name() { // class setup code here }
Derribar una vez
- Al igual que una configuración de una sola vez, también está disponible un modo de limpieza de una sola vez. Se ejecuta después de cada modo de prueba y caso. @Después anotaciones hechas.
- Es útil para detener servidores, cerrar enlaces de comunicación, etc.
- Esto se puede hacer usando el @Después de clases anotación
@AfterClass public static void Method_Name() { // class cleanup code here }
Salas de prueba JUnit
Si queremos realizar múltiples pruebas en un orden específico, podemos hacerlo combinando todas las pruebas en un solo lugar. Este lugar se llama salas de pruebas. En JUnit se tratarán más detalles sobre cómo ejecutar las salas de prueba y cómo se utilizan. tutorial.
Ejecutor de prueba de Junit
JUnit proporciona una herramienta para ejecutar sus casos de prueba.
- JUnitCore se utiliza una clase para realizar estas pruebas.
- Método conocido runClasses proporcionado por org.junit.runner.JUnitCore, utilizado para ejecutar una o más clases de prueba.
- El tipo de retorno de este método es el Resultado objetoorg.junit.runner.Result), que se utiliza para acceder a información sobre las pruebas. Consulte el siguiente ejemplo de código para obtener más claridad.
public class Test { public static void main(String[] args) { Result result = JUnitCore.runClasses(CreateAndSetName.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
En el código anterior se procesa un objeto «resultado» para obtener las fallas y los resultados exitosos de los casos de prueba que estamos ejecutando.
El primer programa JUnit
Un buen conocimiento de SDLC, programación java y los conceptos básicos del proceso de prueba de software ayuda a comprender el programa JUnit.
Entendemos las pruebas unitarias utilizando un ejemplo en vivo. Necesitamos crear una clase de prueba con un método de prueba anotado. @ Examen como se indica a continuación:
MyFirstClassTest.java
package guru99.JUnit; import static org.JUnit.Assert.*; import org.JUnit.Test; public class MyFirstClassTest { @Test public void myFirstMethod(){ String str= "JUnit is working fine"; assertEquals("JUnit is working fine",str); } }
TestRunner.java
Para ejecutar nuestro método de prueba (arriba), necesitamos crear un corredor de prueba. En el corredor de pruebas, necesitamos agregar una clase de prueba como parámetro en el modo JUnitCore runclasses (). Devolverá el resultado de la prueba, en función de si la prueba se aprobó o no.
Para obtener más detalles sobre esto, consulte el código a continuación:
package guru99.JUnit; 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(MyFirstClassTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println("Result=="+result.wasSuccessful()); } }
Producción
Una hora TestRunner.java ejecuta nuestros métodos de prueba, obtenemos resultados como fallidos o aprobados. Encuentre la explicación de salida a continuación:
- En este ejemplo, después de la ejecución MyFirstClassTest.java , se pasa la prueba y el resultado es verde.
- Si falla, debería mostrar el resultado como rojo y la falla se puede ver en la pista de falla. Vea a continuación JUnit gui:
Resumen:
- JUnit es un marco que admite varias anotaciones para identificar un método en el que probar.
- JUnit proporciona una anotación @ Examen, que le dice al JUnit que el método public void en el que se usa se puede ejecutar como un caso de prueba.
- Un accesorio de prueba es un contexto en el que se ejecuta un caso de prueba
- Para realizar múltiples pruebas en un orden específico, se puede hacer combinando todas las pruebas en un solo lugar. Este lugar se llama salas de pruebas.
- JUnit proporciona una herramienta para realizar las pruebas donde podemos ejecutar nuestros casos de prueba llamada Test Runner.