我在mscorlib.fakes库中找到伪造的Thread.Sleep时遇到了麻烦.我正在关注http://www.codewrecks.com/blog/index.php/2012/04/27/using-shims-in-visual-studio-11-to-test-untestable-code/
http://msdn.microsoft.com/en-us/library/d00bd51t(v=vs.100).aspx显示Thread.Sleep在mscorlib中,所以我添加了它的假,但System.Threading.Fakes命名空间不包含ShimThread也不是StubThread.线程是一个密封类,但VS假框架应该能够在密封类中伪造静态方法.
这是非常可能的.默认情况下,Fakes框架不会为mscorlib的大多数类型(包括System.Threading命名空间中的类型)生成填充程序,因为Fakes框架本身使用了mscorlib.因此,只有少数类型是shimmed,但是,您可以通过更改项目中添加的mscorlib.fakes文件来配置此行为.
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="mscorlib" Version="4.0.0.0"/>
<ShimGeneration>
<Add Namespace="System.Threading!"/>
</ShimGeneration>
</Fakes>
Run Code Online (Sandbox Code Playgroud)
现在构建测试项目,您可以在System.Threading命名空间中看到类型的填充程序,包括ShimThread.SleepInt32.
阅读此页面上有关.fakes xml文件的更多信息