Ich habe gerade einen "PluginsService" geschrieben, den ich schreibe. Ich brauche die Systembibliotheken von Assembly, AssemblyName, Directory und File. Zur Zeit erstelle ich Wrapper-Interfaces für jede von diesen, damit ich sie in den Tests verspotten kann. Dies bedeutet jedoch, dass ich einige Wrapper in den Dienst injizieren muss.Unit Testen eines Dienstes mit benötigten Systembibliotheken
So zum Beispiel, wenn eine Methode testen, die einen Ordner für einige Plugins sucht Ich mache diese
With.Mocks(mockery)
.Expecting(() =>
{
Expect.Call(directory.GetFiles(PLUGINPATH, PLUGINSEARCHPATTERN)).IgnoreArguments().Return(pluginLibraries);
Expect.Call(file.ReadAllBytes(null)).IgnoreArguments().Return(bytes);
Expect.Call(assemblyName.GetAssemblyName("fileName")).IgnoreArguments().Return(name);
Expect.Call(assembly.GetExecutingAssembly()).Return(executingAssembly);
})
.Verify(() => result = service.FindAvailablePlugins());
Ich habe 2 Fragen:
- Gibt es eine bessere Art und Weise Systembibliothek der Handhabung Artikel für TDD?
- Sind 4 zu viele Elemente in eine Klasse zu injizieren?
danke ich werde mir das ansehen –