Este paquete no existía cuando esta respuesta fue aceptada originalmente. La respuesta original se proporciona para el contexto histórico a continuación:
Podrías hacerlo creando una interfaz:
interface IFileSystem {
bool FileExists(string fileName);
DateTime GetCreationDate(string fileName);
}
y creando una implementación 'real' que usa System.IO.File.Exists () etc. Luego puede burlarse de esta interfaz usando un marco de burla; Recomiendo Moq .
Editar: alguien ha hecho esto y lo ha publicado amablemente en línea aquí .
He utilizado este enfoque para simular DateTime.UtcNow en una interfaz IClock (¡realmente muy útil para que nuestras pruebas puedan controlar el flujo del tiempo!), Y más tradicionalmente, una interfaz ISqlDataAccess.
Otro enfoque podría ser usar TypeMock , esto le permite interceptar llamadas a clases y eliminarlas. Sin embargo, esto cuesta dinero, y necesitaría instalarse en las PC de todo su equipo y en su servidor de compilación para poder ejecutarse, además, aparentemente no funcionará para el archivo System.IO., ya que no puede bloquear mscorlib .
También podría aceptar que ciertos métodos no son comprobables por unidad y probarlos en un conjunto separado de pruebas de integración / sistema de ejecución lenta.