Moq设置方法没有覆盖先前的设置方法,导致验证不需要的方法

时间:2012-12-24 15:21:00

标签: c# unit-testing moq

我在[TestInitialize]中写过

dbfc.Setup(_=>_.crt(It.IsAny<string>())).Returns("blhblh");

因为我在很多测试中都需要它。

现在,我写的[TestMethod]本身

dbfc.Setup(_=>_.crt("blhblh")).Returns("blhblh").Verify;

dbfc.VerifyAll();

结果是第一种方法经历了验证,即使我不想要它,并且因为第一种方法我得到了一个错误,我希望第二种方法覆盖第一种方法,而且只有第二个将进行验证。

1 个答案:

答案 0 :(得分:0)

如果你的模拟是针对你编写的每个测试方法而特定的,那么在你想要的地点实例化并设置模拟

dbfc = new Mock<Class/Interface>();

dbfc.Setup(_=>_.crt("blhblh")).Returns("blhblh").Verifiable();

dbfc.VerifyAll();