1. ホーム
  2. c#

[解決済み] Moqでメソッドが呼び出されていないことを確認する方法は?

2022-03-19 07:12:32

質問

でメソッドが呼び出されていないことを確認するには、どうすればよいですか? モック ?

AssertWasNotCalledのようなものがあるのでしょうか?

UPDATE: Version 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."));