我有一个需要重构的这个(工作)代码,以便我可以对包添加到 IList 以及是否运行每个包的 LoadContexts 和 LoadModules 进行单元测试(使用 moq)。
private Package[] _getPackages()
{
string[] files = _directory.GetFiles(_moduleDirectory, "*.dll", SearchOption.AllDirectories);
foreach (string file in files)
{
string relativePath = file.Substring(_baseDirectory.Count());
Package package = new Package(relativePath);
package.LoadContexts();
package.LoadModules();
if (package.Contexts.Count() > 0 && package.Modules.Count() > 0)
{
_packages.Add(package);
}
}
return _packages.ToArray();
}
我正在考虑使用 IPackageList 接口创建一个单独的 PackageList 类,并让这个类处理添加和加载包。这样我就可以验证是否使用了这些方法,并对 PackageList 类进行单独的测试。
这是一个好方法还是有更好的模式来测试它?