Prueba parametrizada JUnit con ejemplo usando @Parameters

¿Qué es la prueba parametrizada en Junit?

La prueba parametrizada consiste en ejecutar la misma prueba una y otra vez utilizando diferentes valores. Ayuda al desarrollador a ahorrar tiempo al ejecutar la misma prueba, que solo difiere en sus entradas y resultados esperados.

Al utilizar la prueba parametrizada, se puede configurar un método de prueba que recupere datos de alguna fuente de datos.

Considere una prueba sencilla para sumar diferentes números. El código puede verse así:

Prueba parametrizada en Junit

El enfoque anterior genera mucha redundancia.

Necesitamos un enfoque simple y. Al utilizar la prueba parametrizada, puede simplemente 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

Following El código muestra un ejemplo de una prueba parametrizada. Prueba el método sum() de la clase Aritmética:

Paso 1) Crear una clase. En este ejemplo, ingresaremos dos números usando el método suma (int,int) que devolverá la suma de los números dados.

Pasos para crear una prueba JUnit parametrizada

Paso 2) Crear una clase de prueba parametrizada

Pasos para crear una prueba JUnit parametrizada

Explicación del código

  • Línea de código 11: Anota tu clase de prueba usando @runWith(Parameterized.class).
  • Línea de código 13: Declarar la variable 'primerNúmero' como privada y escribirla como int.
  • Línea de código 14: Declarar la variable 'segundoNúmero' como privada y escribirla como int.
  • Línea de código 15: Declarar la variable 'resultado esperado' como privada y escribirla como int.
  • Línea de código 16: Declarando la variable 'airthematic' como privada y tipo como Airthematic.

@Corre con(nombre_clase.clase): @Corre con La anotación se utiliza para especificar el nombre de su clase de corredor. Si no especificamos ningún tipo como parámetro, el tiempo de ejecución elegirá BloqueJunit4ClassRunner por defecto

Esta clase es responsable de que las pruebas se ejecuten con una nueva instancia de prueba. Es responsable de invocar métodos del ciclo de vida de JUnit, como configuración (asociar recursos) y desmontaje (liberar recursos).

Para parametrizar, debe realizar anotaciones usando @RunWith y pasar la clase .class requerida para ser probada.

Paso 3) Cree un constructor que almacene los datos de prueba. Almacena 3 variables

Pasos para crear una prueba JUnit parametrizada

Paso 4) Cree un método estático que genere y devuelva datos de prueba.

Pasos para crear una prueba JUnit parametrizada

Línea de código 32,33: Crear una matriz bidimensional (proporcionando parámetros de entrada para sumar). Usando el método asList convertimos los datos en un tipo de Lista. Desde entonces, el tipo de retorno de la entrada del método es colección.

Línea de código 30: Usar @Parámetros anotación 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 de la Colección será los datos de entrada para una iteración de la prueba.

Considere el elemento

1,2,3 {}

Aquí

primer número = 1

segundoNúmero=2

Resultado esperado=3

Aquí, cada elemento de la matriz se pasará al constructor, uno a la vez, a medida que se crean instancias de la clase varias veces.

Paso 5) El código completo

Pasos para crear una prueba JUnit parametrizada

Explicación del código:

  • Línea de código 25: Usando la anotación @Before para configurar los recursos (Airthematic.class aquí). La anotación @Before se utiliza aquí para ejecutarse antes de cada caso de prueba. Contiene la condición previa de la prueba.
  • Línea de código 36: Usando la anotación @Test para crear nuestra prueba.
  • Línea de código 39: Crear una declaración de afirmación para verificar si nuestra suma es equivalente a lo que esperábamos.

Paso 6) Cree una clase de corredor de pruebas para ejecutar pruebas parametrizadas:

Pasos para crear una prueba JUnit 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: Imprimiendo el resultado exitoso.

Salida:

Aquí está el resultado que muestra una prueba exitosa sin rastro de falla como se indica a continuación:

Pasos para crear una prueba JUnit parametrizada

Vea el resultado en la consola, que muestra la suma de dos números: -

Prueba parametrizada JUnit

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