Tengo algunas funciones que dicen & modificar archivos. Para hacer las pruebas unitarias independientemente de cualquier problema del sistema de archivos, quiero incluir los archivos dentro del proyecto.Incluye el archivo de recursos para la prueba unitaria en el proyecto C#
Sin embargo, mi función debería ser obtener filePath, y todo lo que puedo obtener del ensamblado es un FileStream. ¿Alguna idea de cómo puedo obtener la ruta del archivo de un archivo de recursos en el proyecto?
System.Reflection.Assembly a = System.Reflection.Assembly.Load(assemblyName);
FileStream stream = a.GetFile(assemblyName + "." + fileName);
Gracias!
mi humilde opinión este tipo de ensayo de datos nunca debe ser incorporado en la prueba y debe ser suministrado por separado (que también le permite volver a ejecutar la prueba con diferentes datos sin reconstrucción). ¿Qué tipo de problemas con el sistema de archivos le preocupa? –
No me gusta que las pruebas de la unidad dependan de recursos externos, que se pueden modificar, mover, cambiar, etc. Esta prueba unitaria se realiza para verificar 1 escenario, y quiero que se pruebe ese escenario exacto, por lo que debe ser independiente del hecho de que los permisos de archivo se puedan cambiar, demasiados manejadores de archivos abiertos, disco NTFS no disponible, etc. – Yossale
Creo que esta es una muy buena pregunta. En cuanto a las pruebas de unidades reales, reconozco que se debe evitar el uso de datos de archivo, pero si piensas en pruebas de integración (por ejemplo, estoy escribiendo un lector de archivos), usar datos de prueba "reales" tiene sentido. – anhoppe