Ich möchte einen Komponententest schreiben, der die Funktion einer Klasse namens UploadedFile testet.Wie kann ich HttpContext verfügbar machen, um von meinen Unit Tests verwendet zu werden?
Das Problem, dem ich gegenüberstehe, ist der statische Konstruktor der Klasse, der die HttpContext.Current-Eigenschaft verwendet und weil ich meinen Unit-Test von einer Klassenbibliothek aus führe, habe ich zum Testzeitpunkt keinen HttpContext.
Sehen Sie sich meine statischen Konstruktor:
static UploadedFile()
{
if (HttpContext.Current == null)
throw new Exception("web server not available");
HttpServerUtility server = HttpContext.Current.Server;
// SET UploadedFileMappingFile Names:
_resourceFileNames = new StringDictionary();
_resourceFileNames[_suppoertedFileStructures] = server.MapPath(SupportedUploadedFileStructures);
_resourceFileNames[_supportedFileStructuresXSD] = server.MapPath(SupportedUploadedFileStructuresXSD);
_resourceFileNames[UploadedFileEnum.UploadedFileFormatENUM.CSV.ToString()] = server.MapPath(UploadedFileColumnMap);
}
Was soll ich in meiner Testumgebung tun, damit HttpContext.Current
nicht null sein wird, und ich kann dies erfolgreich gesetzt:
HttpServerUtility server = HttpContext.Current.Server;
Danke für die Idee! Ich habe die Rhino.Mocks.dll bisher leider nicht benutzt. Es scheint, dass ich mich zuerst damit vertraut machen muss, dann werde ich versuchen, Ihren Vorschlag umzusetzen. Vielen Dank! – pencilCake