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



[TestInitialize]我写

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

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

现在,在[TestMethod]上我写了

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

结果是第一个方法通过了验证,尽管我并不想这样做,并且由于第一个方法我得到了一个错误,并且我希望第二个方法覆盖第一个方法,并且只有第二个方法将进行验证。

如果您的模拟特定于您编写的每个测试方法,那么就在您想要的位置实例化并设置模拟,如

所示
dbfc = new Mock<Class/Interface>();
dbfc.Setup(_=>_.crt("blhblh")).Returns("blhblh").Verifiable();
dbfc.VerifyAll();

相关内容

  • 没有找到相关文章

最新更新