Por el lado de la punta: Si la conexión es configurable, reducir el tiempo de espera de la conexión de cadena a 1 segundo - que hará que sea más fácil. Llene la tabla con montones de datos y haga que otros 3 procesos giren en un ciclo actualizando los fragmentos de esa tabla con una transacción alrededor del ciclo. No modifique el procedimiento real invocado por la aplicación (inyectando waitfor). Eso invalida una prueba de integración.
Pero en realidad, este es un caso de estudio a favor de las pruebas unitarias y la inyección de dependencia. Algunas cosas son difíciles de probar para la integración. Prueba unitaria + dependency injection.
- Real: Código que craps -> Tiempo de espera de la base de datos (difícil de reproducir).
- Refactor: Código que los dados -> Repositorio (hace acceso a datos solamente) -> Base de datos
- Unidad de prueba: código que los dados>Mock repository para lanzar -> nula
- Ahora usted tiene una prueba en su defecto para el código que dados y puede arreglarlo
Esto es inyección de "dependencia". El desarrollador puede inyectar la dependencia a la base de datos, sustituyendo algo que simula el comportamiento de una dependencia. Es bueno hacerlo para todas las pruebas de bases de datos. De todos modos, con la prueba de la unidad en su lugar, sabrá que la solución funciona como debería, pero aún necesita una prueba de integración. En este caso, puede centrarse mejor en la regresión, lo que significa que probarla no rompió ninguna otra cosa y la función aún funciona.
Ya ha creado su parche, por lo que supongo que mi respuesta es demasiado tarde.
Votado por la simplicidad de la respuesta. Lo he probado y funciona – Mikel
Estaba poblando una tabla y creando consultas recursivas complejas, buff, sinsentido. Estos hacen el truco. – DanielV