【发布时间】:2009-04-20 09:42:06
【问题描述】:
我目前正在编写我正在编写的“PluginsService”。我需要使用 Assembly、AssemblyName、Directory 和 File 的系统库。目前我正在为每一个创建包装器接口,以便我可以在测试中模拟它们。但是,这确实意味着我必须将很多包装器注入到服务中。
例如,当测试一个在文件夹中搜索某些插件的方法时,我正在这样做
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());
我有两个问题:
- 是否有更好的方法来处理 TDD 的系统库项目?
- 一个类中要注入 4 个项目太多了吗?
【问题讨论】:
标签: c# unit-testing tdd