这是一位与我感兴趣的同事实际提出的情况:
public DoSomething()
{
//Do Stuff
var assembly = Assembly.LoadFrom("Path");
//Do More Stuff
}
所以,为了模拟这个,你有两个选择
创建一个internal virtual
方法:
internal virtual IAssembly LoadAssembly(String path){...Load Here...}
或者,添加一个可以传入的新类
public class AssemblyLoader
{
public virtual IAssembly LoadAssembly(String path){...Load here...}
}
这两个选项似乎都是一个问题,因为第一个似乎它应该是一个私有方法,而第二个似乎是为简单的静态调用创建包装器的过度设计?
所以,我想我会把它带到社区。我正在寻找最实用的方法,同时保持单元可测试。
这类似于这个 SO question,但是我真的想更深入地研究它。