不为.NET方法生成填充程序
当我开始使用Microsoft Fakes时,我很高兴开始填补一些.NET方法。 我一直相信我能够使用任何.NET方法,静态或不静态: http : //msdn.microsoft.com/en-us/library/hh549176.aspx 。
但是,我一直试图在TcpClient中填充一些方法,只创建了存根,这对我没有好处,因为我希望能够改变一些方法来返回我自己的数据而不是依赖于直播TcpClient给我数据。
如果还有其他超越Microsoft Fakes的方法,我愿意接受有关如何执行此操作的任何建议。
编辑:添加代码来演示问题
[TestMethod] public void CommunicationTest() { var stubbedTcpClient = new System.Net.Sockets.Fakes.StubTcpClient { }; //No such ShimTcpClient exists var shimmedTcpClient = new System.Net.Sockets.Fakes.ShimTcpClient { }; }
得到了这个博客文章和这里的帮助。
解决方案是在System.fakes文件中添加我想要显式填充的类。 这就是我现在的样子:
Remove Obsolete="1"
用于阻止Shim生成代码在尝试填充[Obsolete]代码时抛出错误。
我也有同样的问题。
我的System.fakes和mscorlib.fakes看起来像这样:
和
解
System.fakes
mscorlib.fakes
保存文件后,我重建解决方案。 现在我有了ShimBackgroundWorker。