以下は、私の興味を引いた同僚が実際に提示した状況です。
public DoSomething()
{
//Do Stuff
var assembly = Assembly.LoadFrom("Path");
//Do More Stuff
}
したがって、これをモックするには、2 つのオプションがあります。
internal virtual
メソッドを作成します。
internal virtual IAssembly LoadAssembly(String path){...Load Here...}
または、渡すことができる新しいクラスを追加します
public class AssemblyLoader
{
public virtual IAssembly LoadAssembly(String path){...Load here...}
}
最初のオプションはプライベート メソッドである必要があり、2 番目のオプションは単純な静的呼び出しのラッパーを作成する過剰設計であるように思われるため、両方のオプションが問題のようです。
それで、コミュニティに持っていこうと思いました。単体テスト可能でありながら、最も実用的なアプローチを探しています。
これは、この SO の質問に似ていますが、本当に深く掘り下げたいと思います。