Básicamente tengo dos preguntas principales:¿Cómo probar la unidad?
- ¿Qué es exactamente debe usted prueba de unidad?
- ¿Cómo lo haces?
El problema es que tengo varias aplicaciones que se basan en una conexión de base de datos y/o son aplicaciones de comunicación, lo que significa la mayor parte de los casos de prueba son pruebas de integración (o eso creo).
La mayoría de las clases son bastante simples por sí mismas, pero las que implementan el protocolo de comunicación, que son las que serían útiles para automatizar las pruebas, pueden encajar bien en el modelo de "prueba de unidad".
Otro ejemplo. Desarrollé una estructura de tubería con soporte multiproceso para un patrón consumidor/productor. Cuando un hilo lee la tubería y la encuentra vacía, bloquea hasta que un escritor escribe en la tubería. ¿Debería usar pruebas unitarias para probar esa clase?
¿Cómo se decide qué unidad de prueba?
Editar: Me refiero a pruebas de unidades de escritura para pruebas unitarias automatizadas.
Entonces, incluso si necesita burlarse de otros objetos o simular eventos externos o dispositivos, se puede considerar una prueba de unidad y una prueba se escribirá para ello? –
@Jorge Corboda Sí. Creo que si. Muchos entornos, como el código que se ejecuta en un contenedor, son difíciles de probar por sí mismos. Por lo tanto, la creación de objetos simulados para la prueba se considera una buena práctica. Sin embargo, es importante que el código de prueba pueda ejecutarse independientemente. –
Aunque técnicamente, cualquier prueba de código que tenga una dependencia fuera de la unidad que se está probando (base de datos, sistema de archivos, etc.) es una prueba de integración. Sin embargo, los dos términos pueden ser, y a menudo son, usados indistintamente. – ZombieSheep