¿Qué es la prueba parametrizada en Junit?
La prueba parametrizada consiste en ejecutar la misma prueba una y otra vez utilizando valores diferentes. Ayuda al desarrollador a ahorrar tiempo en la ejecución de la misma prueba, que solo difiere en sus entradas y resultados esperados.
Con la prueba parametrizada, se puede configurar un método de prueba que recupere datos de alguna fuente de datos.
Considere una prueba simple para sumar diferentes números. El código puede verse así:
El enfoque anterior conduce a mucha redundancia.
Necesitamos un enfoque simple y. Con la prueba parametrizada, puede agregar un método para ingresar 10 entradas de datos y su prueba se ejecutará 10 veces automáticamente.
Pasos para crear una prueba JUnit parametrizada
El siguiente código muestra un ejemplo de una prueba parametrizada. Prueba el método sum () de la clase Aritmética:
Paso 1) Crea una clase. En este ejemplo, vamos a ingresar dos números usando el método sum (int, int) que devolverá la suma de los números dados.
Paso 2) Cree una clase de prueba parametrizada
Explicación del código
- Línea de código 11: Anote su clase de prueba usando @runWith (Parameterized.class).
- Línea de código 13: Declarar la variable 'firstNumber' como privada y escribir como int.
- Línea de código 14: Declarar la variable 'secondNumber' como privada y escribir como int.
- Línea de código 15: Declarar la variable 'esperabaResultado' como privada y escribir como int.
- Línea de código 16: Declarar la variable 'airthematic' como privada y de tipo Airthematic.
@RunWith (class_name.class): la anotación @RunWith se usa para especificar su nombre de clase de corredor. Si no especificamos ningún tipo como parámetro, el tiempo de ejecución elegirá BlockJunit4ClassRunner por defecto.
Esta clase es responsable de que las pruebas se ejecuten con una nueva instancia de prueba. Es responsable de invocar los métodos del ciclo de vida de JUnit, como configuración (recursos asociados) y desmontaje (recursos de liberación).
Para parametrizar necesita anotar usando @RunWith y pasar .class requerido para ser probado
Paso 3) Cree un constructor que almacene los datos de prueba. Almacena 3 variables
Paso 4) Cree un método estático que genere y devuelva datos de prueba.
Línea de código 32,33: Creación de una matriz bidimensional (proporcionando parámetros de entrada para sumar). Usando el método asList convertimos los datos en un tipo List. Dado que, el tipo de retorno de entrada del método es colección.
Línea de código 30: Uso de la anotación @Parameters para crear un conjunto de datos de entrada para ejecutar nuestra prueba.
El método estático identificado por la anotación @Parameters devuelve una colección donde cada entrada en la colección será la información de entrada para una iteración de la prueba.
Considere el elemento
{1,2,3}
Aquí
firstNumber = 1
secondNumber = 2
esperadoResultado = 3
Aquí, cada elemento de la matriz se pasará al constructor, uno a la vez, ya que la clase se instancia varias veces.
Paso 5) El código completo
Explicación del código:
- Línea de código 25: Uso de la anotación @Before para configurar los recursos (Airthematic.class aquí). La anotación @Before se usa aquí para ejecutar antes de cada caso de prueba. Contiene la condición previa de la prueba.
- Línea de código 36: Uso de la anotación @Test para crear nuestra prueba.
- Línea de código 39: creación de una declaración de aserción para verificar si nuestra suma es equivalente a lo que esperábamos.
Paso 6) Cree una clase de corredor de prueba para ejecutar una prueba parametrizada:
Explicación del código:
- Línea de código 8: Declarando el método principal de la prueba de clase que ejecutará nuestra prueba JUnit.
- Línea de código 9: Al ejecutar casos de prueba usando JunitCore.runclasses, tomará el nombre de la clase de prueba como parámetro (en nuestro ejemplo estamos usando Airthematic.class).
- Línea de código 11: Procesando el resultado usando el bucle for e imprimiendo el resultado fallido.
- Línea de código 13: Impresión del resultado exitoso.
Producción:
Aquí está el resultado que muestra una prueba exitosa sin rastro de falla como se indica a continuación:
Vea el resultado en la consola, que muestra la suma de dos números: -
Resumen :
La prueba parametrizada permite al desarrollador ejecutar la misma prueba una y otra vez utilizando diferentes valores.
Anotaciones importantes que se utilizarán durante la parametrización
- @Corre con
- @Parámetros