如何验证未在Moq中调用该方法?
它有类似 AssertWasNotCalled 的东西吗?
更新:从 3.0 版开始,可以使用新语法:
mock.Verify(foo => foo.Execute("ping"), Times.Never());
更新 :从第 3 版开始,请检查上述问题的更新或以下 Dann 的回答。
要么,让你的模拟严格,这样如果你调用一个你没有期望的方法,它就会失败
new Mock<IMoq>(MockBehavior.Strict)
或者,如果您希望您的模拟是松散的,请使用 .Throws( Exception )
var m = new Mock<IMoq>(MockBehavior.Loose); m.Expect(a => a.moo()).Throws(new Exception("Shouldn't be called."));