Casos de prueba de JUnit en Java: tutorial simple de JUnit 5.7.1 Hello World con detalles de todo en uno

Publicado: 2019-10-30
java-junit-ejemplo

¿Qué es JUnit?

JUnit es un marco de código abierto simple y potente para escribir y ejecutar pruebas repetibles. Me encantan los casos de prueba JUnit. Durante el desarrollo de mi proyecto Java, uso mucho JUnit para la cobertura de código. Es una instancia de la arquitectura xUnit para marcos de pruebas unitarias.

Las características de JUnit incluyen:

  1. Aserciones para probar los resultados esperados
  2. Dispositivos de prueba para compartir datos de prueba comunes
  3. Corredores de prueba para ejecutar pruebas

En este tutorial, cubriré los puntos 1 y 3. Necesita las siguientes dependencias de maven en su proyecto.

Comencemos a escribir código.

Paso 1

Cree el proyecto CrunchifyJunitTest y especifique el paquete com.crunchify.junit . Aquí hay una estructura de paquete para una referencia rápida.

Crunchify JUnit Proyecto Eclipse Estructura

Paso 2

Haga clic derecho en CrunchifyJunitTest => Nueva clase => CrunchifyJunitTest.java

Paso 3

Eclipse sugerirá y agregará automáticamente la dependencia org.junit.Test una vez que escriba @Test .

Dependencia de Maven de prueba de Eclipse

Etapa 4

Para probar su prueba JUnit

  • Haga clic derecho en la clase
  • Haga clic en Ejecutar como
  • Haga clic en JUnit Test

Debería ver algo como esto.

Prueba JUnit exitosa

Paso-5

Intente cambiar el parámetro de valor esperado del método de 30 => 300 y de Hello World => Hello -- World y vuelva a probar.

Fallo en la prueba JUnit - Consejos de Crunchify

Paso-6

Ahora ejecutemos el mismo caso de prueba via other java . Crear CrunchifyRunnerJUnit.java

Paso-7

Ejecute CrunchifyRunnerJUnit.java como una Java Application .

Paso-8

En el caso del 1st code (parámetro esperado correcto), debería ver un resultado como este:

Paso-9

En el caso del 2nd code (parámetro esperado incorrecto), debería ver algo como esto:

Y ya está todo listo. Avíseme si ve algún problema al ejecutar este código.

Tutorial de JUnit por Crunchify

Anotación disponible en JUnit testcase:

Anotación

Descripción

@Test método de vacío público () La anotación @Test identifica que un método es un método de prueba.
@Antes del método de vacío público () Ejecutará el método antes de cada prueba. Este método puede preparar el entorno de prueba (por ejemplo, leer datos de entrada, inicializar la clase).
@Después del método de vacío público () Ejecutará el método después de cada prueba. Este método puede limpiar el entorno de prueba (por ejemplo, eliminar datos temporales, restaurar los valores predeterminados).
Método de vacío público @BeforeClass () Ejecutará el método una vez, antes del inicio de todas las pruebas. Esto se puede utilizar para realizar actividades que consumen mucho tiempo, por ejemplo, para conectarse a una base de datos.
Método de vacío público @AfterClass () Ejecutará el método una vez, después de que hayan finalizado todas las pruebas. Esto se puede usar para realizar actividades de limpieza, por ejemplo, para desconectarse de una base de datos.
@Ignorar Ignorará el método de prueba. Esto es útil cuando se ha cambiado el código subyacente y el caso de prueba aún no se ha adaptado. O si el tiempo de ejecución de esta prueba es demasiado largo para incluirlo.
@Prueba (esperado = Excepción.clase) Falla, si el método no lanza la excepción nombrada.
@Prueba(tiempo de espera=100) Falla, si el método tarda más de 100 milisegundos.

Métodos de prueba de afirmación disponibles:

Declaración

Descripción

fallar (cadena) Deja que el método falle. Puede usarse para comprobar que no se alcanza una determinada parte del código. O tener una prueba fallida antes de que se implemente el código de prueba.
afirmarVerdadero(verdadero) / afirmarVerdadero(falso) Siempre será verdadero/falso. Se puede utilizar para predefinir un resultado de prueba, si la prueba aún no está implementada.
afirmarVerdadero([mensaje], condición booleana) Comprueba que la condición booleana es verdadera.
afirmaEquals([Mensaje de cadena], esperado, real) Comprueba que dos valores son iguales. Nota: para las matrices, se comprueba la referencia, no el contenido de las matrices.
afirmaEquals([Mensaje de cadena], esperado, real, tolerancia) Pruebe que los valores flotantes o dobles coincidan. La tolerancia es el número de decimales que deben ser iguales.
afirmarNulo([mensaje], objeto) Comprueba que el objeto es nulo.
afirmarNoNulo([mensaje], objeto) Comprueba que el objeto no es nulo.
afirmarIgual([Cadena], esperado, real) Comprueba que ambas variables se refieren al mismo objeto.
assertNotSame([String], esperado, real) Comprueba que ambas variables se refieren a objetos diferentes.