Ich habe einige Funktionen, die lesen & Dateien ändern. Um die Komponententests unabhängig von Dateisystemproblemen durchzuführen, möchte ich die Dateien in das Projekt einbeziehen.Einschließlich Ressourcen-Datei für Unit-Test in C# -Projekt
Allerdings sollte meine Funktion den filePath erhalten, und alles, was ich von der Assembly bekommen kann, ist ein FileStream. Irgendeine Idee, wie ich den Dateipfad einer Ressourcendatei im Projekt bekommen kann?
System.Reflection.Assembly a = System.Reflection.Assembly.Load(assemblyName);
FileStream stream = a.GetFile(assemblyName + "." + fileName);
Vielen Dank!
IMHO solche Testdaten sollten niemals in die Test gebaut werden und sollte separat versorgt werden (was auch können Sie den Test mit verschiedenen Daten ohne Wiederaufbau erneut ausführen). Um welche Art von Dateisystemproblemen geht es Ihnen? –
Ich mag es nicht, dass die Komponententests von externen Ressourcen abhängig sind, die geändert, verschoben, geändert usw. werden können. Dieser Komponententest wird durchgeführt, um 1 Szenario zu überprüfen, und ich möchte, dass das genaue Szenario getestet wird, also sollte es unabhängig davon sein, dass die Dateiberechtigungen geändert werden können, zu viele Dateihandler geöffnet, NTFS-Datenträger nicht verfügbar usw. – Yossale
Ich denke, das ist eine sehr gute Frage. Wie bei realen Unit-Tests gebe ich zu, dass die Verwendung von Datei-Daten vermieden werden sollte, aber wenn Sie an Integrationstests denken (z. B. schreibe ich gerade einen Datei-Reader), verwenden 'echte' Testdaten Sinn imho. – anhoppe