4
我正在使用System.Data.DataSet前面的接口(IDataSet)进行测试。我希望能够模拟Copy()方法。基本上我想要一个相同的模拟对象的副本/克隆。有没有办法按值复制Moq Mock <>?
下面是我想要做的一些伪代码。
Mock<IDataSet> dataMock = new Mock<IDataSet>();
Mock<IDataSet> copyMock = ??? // How do I clone the mock?
dataMock.Setup(c => c.Copy()).Returns(copyMock.Object);
这可能吗?
感谢您的洞察。将“dataMock”切换到假冒让我走出了死亡之路。 – 2009-08-18 20:43:29
+1 - 很好的答案!我会争辩说,Moq允许您创建Fakes,因为您可以执行Return(Func)或Callback(Action)。但手动伪装可能更具可读性。 – TrueWill 2010-03-05 13:53:04
@TrueWill:这是一个有效的观点,但最重要的是它展示了我在另一个环境中所做的一点:测试双打居住在一个模糊定义的连续体中:http://msdn.microsoft.com/en-us/magazine/cc163358.aspx – 2010-03-05 13:58:00