¿Las pruebas de integración usan simulacros?

24

Actualmente estoy en una clase para pruebas de software donde para nuestro proyecto semestral, tenemos que realizar múltiples tipos de pruebas en él, como pruebas unitarias y pruebas de integración. Para las pruebas de integración, el profesor dijo que usar simulacros y bibliotecas simuladas (como EasyMock y Mockito) para nuestras pruebas de integración. Sin embargo, me estoy confundiendo bastante. Las pruebas de integración son pruebas fuera de clases, módulos, servicios, etc. ¿Por qué los simulacros y los apéndices serían adecuados para usar en las pruebas de integración si está probando múltiples clases y servicios?

TheLegendOfCode
fuente
8
Las pruebas de "integración" y "unidad" no son términos universalmente acordados. Es mejor preguntarle a su profesor exactamente cómo han definido esos términos.
RubberDuck
1
Solo un comentario. La prueba de integración no se trata de probar las dependencias. Se trata de probar la integración correcta del código con las dependencias (las llamadas, la respuesta y el manejo de errores, etc.).
Laiv

Respuestas:

25

Si tiene una funcionalidad que toca varios componentes externos, puede burlarse de todos menos uno para aislar y probar un componente específico. Por ejemplo, suponga que tiene una función que llama a un servicio web y luego hace algo con una base de datos basada en los resultados. Podrías escribir tres pruebas de integración:

  1. Una prueba que se burla de la llamada al servicio web pero implica una conectividad real de la base de datos.
  2. Una prueba que realiza una llamada real de servicio web pero utiliza una conectividad de base de datos simulada.
  3. una prueba que realiza una llamada real de servicio web e involucra una conexión de base de datos real.

Si ejecuta las tres pruebas y 1 y 3 fallan, existe una buena posibilidad de que haya un error en su código que funcione con la base de datos, ya que la única prueba que pasó fue la que usaba la conectividad simulada de la base de datos.

En general, las pruebas de integración no usan simulacros, pero en ocasiones he hecho algo como esto.

FrustratedWithFormsDesigner
fuente