Quiero cargar un archivo XML externo en una prueba unitaria para probar algún código de procesamiento en ese XML. ¿Cómo obtengo la ruta del archivo?Cómo utilizar MapPath en una prueba unitaria en C#
lo general, en una aplicación web que haría:
XDocument.Load(Server.MapPath("/myFile.xml"));
Pero, obviamente, en mi unidad de prueba no tengo ninguna referencia al servidor o HttpContext así que ¿cómo puedo asignar un camino para que yo no tengo que especifique el camino completo?
ACTUALIZACIÓN:
sólo quiero dejar claro que el código realidad estoy probando es para una clase de analizador XML, algo así como:
public static class CustomerXmlParser {
public static Customer ParseXml(XDocument xdoc) {
//...
}
}
Así que para probar esto necesito para analizar un XDocument válido El método que se prueba no accede al sistema de archivos en sí. Pude crear el XDocument desde una Cadena directamente en el código de prueba, pero pensé que sería más fácil simplemente cargarlo desde un archivo.
¿Cuál es el beneficio de la interfaz aquí? En su lugar, ¿podemos simplemente crear 2 archivos de clase y llamarlos en consecuencia 1 desde una aplicación real y 1 desde el punto final de la prueba? ¿Puede alguien explicar el beneficio de esta interfaz aquí? –
Al usar clases, debe decidir que una clase herede de la otra para que el sistema de tipos sea feliz. Tener su implementación de prueba heredando la real, o al revés, no es realmente una solución ideal. Al hacerlo de esta manera, no es necesario que sus implementaciones real y de prueba se conozcan entre sí, solo que tienen una interfaz común que necesitan satisfacer. – kastermester