パッケージが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 クラスに対して個別のテストを行うことができます。
これは良いアプローチですか、それともこれをテストするためのより良いパターンはありますか?