是否有可能使用Microsoft Fakes来隔离/替换类的构造函数?如何使用Microsoft Fakes Shim隔离(绕道)类的构造函数?
在找到的一个例子鼹鼠(假货先行者):http://thecurlybrace.blogspot.co.at/2011/11/how-do-i-detour-mole-type-constructor.html
我试图构建这样
ShimStreamReader.Constructor = @this => ShimStreamReader.ConstructorString(@this, "Test");
,但它说get访问丢失。为了澄清这将是很好,像这样
new StreamReader(new MemoryStream(Encoding.Default.GetBytes("33\r\n1\r\n16\r\n5\r\n7")))
因此静态输入,以取代类似
new StreamReader("filename")
,我没有嘲笑读,的ReadLine等
这不是excactly我想要什么,看我更新的问题。 – Dresel 2012-10-13 09:04:17
你需要的是一个模拟的StreamReader,这是不是我们可以生成。你必须建立它。 – 2012-10-25 21:19:24
我不知道你是什么意思是模拟StreamReader,但是可以绕过(或替换)Mo中的构造函数调用les(见上面的示例),我认为它可能在Fakes中可能。我尝试了不同的解决方案(比如将“新的StreamReader(”filename“)”调用放入方法中,并用“新的StreamReader(新的MemoryStream(Encoding.Default.GetBytes(”33 \ r \ n1 \ r \ n16 \ r \ n5 \ r \ n7“)))”,但通过构造函数Mocking/Replacing会更加优雅,因为那样我就不需要改变现有的代码。 – Dresel 2012-10-26 12:50:54