Por otro lado: si la conexión es configurable, reduzca el tiempo de espera de la cadena de conexión a 1 segundo; eso lo hará más fácil. Llene la tabla con montones de datos y haga que otros 3 procesos giren en un ciclo actualizando fragmentos de esa tabla con una transacción alrededor del ciclo. No modifique el procedimiento real llamado por la aplicación (inyectando waitfor). Eso invalida una prueba de integración.
Pero realmente, este es un estudio de caso a favor de las pruebas unitarias y la inyección de dependencia. Algunas cosas son difíciles de probar de integración. Prueba unitaria + inyección de dependencia .
- Real: Código que se estropea -> Tiempo de espera de la base de datos (difícil de reproducir).
- Refactorización: Código que craps -> Repositorio (solo tiene acceso a datos) -> Base de datos
- Prueba unitaria: Código que craps> Repositorio simulado para lanzar -> null
- Ahora tiene una prueba fallida para el código que se estropea y puede solucionarlo.
Esta es la inyección de "dependencia". El desarrollador puede inyectar la dependencia a la base de datos, sustituyendo algo que simule el comportamiento de una dependencia. Bueno para todas las pruebas de bases de datos. De todos modos, con la prueba unitaria implementada, sabe que la solución hace lo que debería, pero aún necesita una prueba de integración. En este caso, es mejor que se centre en la regresión, lo que significa que probarlo no rompió nada más y la función aún funciona.
Ya ha creado su parche, así que supongo que mi respuesta es demasiado tarde.