Visual Studio 下的位于 Assembly Microsoft.QualityTools.Testing.Fakes.dll下的单元测试框架: 共有两种(Shim , Stub)
区别:
用法上:Stub用于接口或抽象类(一般不会运用于普通方法的取代),Shim基本上可用于所有非接口抽象类(用的比较多)
性能上:Stub的性能好过Shim,因为Stub其实只是原有抽象父类的一个实例,跟执行普通虚方法的性能差不多的,但是Shim则是通过动态插入替换当前代码
NOTE:对于基于Stub的扩展方法的Fake不是从Stub+该类,而是从Stub+ 扩展方法所属类名来进行Fake