¿Cómo hacer pruebas de integración en .NET con archivos reales?

Tengo algunas clases que implementan alguna lógica relacionada con el sistema de archivos y los archivos. Por ejemplo, estoy realizando las siguientes tareas como parte de esta lógica:

comprobando si cierta carpeta tiene cierta estructura (por ejemplo, contiene subcarpetas con nombres específicos, etc.)cargar algunos archivos de esas carpetas y verificar su estructura (por ejemplo, estos son algunos archivos de configuración, ubicados en cierto lugar dentro de cierta carpeta)cargar archivos adicionales para prueba / validación desde el archivo de configuración (por ejemplo, este archivo de configuración contiene información sobre otros archivos en la misma carpeta, que deberían tener otra estructura interna, etc.)

Ahora toda esta lógica tiene algún flujo de trabajo y se lanzan excepciones, si algo no está bien (por ejemplo, el archivo de configuración no se encuentra en la ubicación específica de la carpeta). Además, hayMarco de Extensibilidad Gestionado (MEF) involucrado en esta lógica, debido a que algunos de estos archivos que estoy verificando son archivos DLL administrados que estoy cargando manualmente a los agregados de MEF, etc.

Ahora me gustaría probar todo esto de alguna manera. Estaba pensando en crear varias carpetas de pruebas físicas en el disco duro, que cubran varios casos de prueba y luego ejecuten mi código en su contra. Podría crear, por ejemplo:

Carpeta con la estructura correcta y todos los archivos siendo válidos.Carpeta con la estructura correcta pero con el archivo de configuración no válido.carpeta con la estructura correcta pero falta el archivo de configuración, etc ...

¿Sería este el enfoque correcto? Sin embargo, no estoy seguro de cómo ejecutar exactamente mi código en este escenario ... Ciertamente, no quiero ejecutar toda la aplicación y apuntarlo para revisar estas carpetas simuladas. ¿Debo usar algún marco de prueba de unidad para escribir una especie de "prueba de unidad", que ejecute mi código contra estos objetos del sistema de archivos?

En general, ¿todo esto es un enfoque correcto para este tipo de escenarios de prueba? ¿Hay otros enfoques mejores?

Respuestas a la pregunta(5)

Su respuesta a la pregunta