Pregunta

Acabo de empezar a usar ASP.NET MVC y TDD. He leído que mientras prueba la unidad, debería concentrarse en probar su código, no otros sistemas, como el DB. Sin embargo, ¿qué sucede cuando la funcionalidad esencial reside en la base de datos?

He utilizado la serie MVC Storefront como una guía inicial para configurar mis proyectos y patrones. Como la búsqueda de texto completo es esencial, lo he configurado como una función en mi repositorio

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

Ahora, la lógica de esta búsqueda necesita una función con valores de tabla con texto completo y algunas otras funciones en la base de datos. La lógica en estas funciones es imposible de obtener exactamente correcta en el fakerepository. ¿Cuál es su recomendación sobre la mejor estrategia para probar esto y hacer TDD en la búsqueda?

¿Fue útil?

Solución

Esto no es una prueba unitaria, es una prueba de integración. Por lo que difícilmente se puede implementar TDD como.

Supongo que el código su no hace mucho pero llama a la base de datos. Así que no tienes que probar mucho. Si puede burlarse de la llamada de la base de datos en el nivel más bajo, puede probar si la llamada ocurre. Si esto se complica mucho, es mejor no escribir una prueba de unidad para ello. Solo será difícil de mantener.

Para escribir la prueba de integración necesita una base de datos real.

Otros consejos

Puede crear una base de datos de prueba que contenga un conjunto de elementos conocidos, luego verifica que el código de búsqueda devuelva los resultados que espera ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top