1. ホーム
  2. .net

[解決済み] Moqでメソッドが正確に一度だけ呼び出されたことを確認するにはどうすればよいですか?

2022-06-28 09:59:07

質問

Moqでメソッドが正確に一度だけ呼び出されたことを確認するにはどうすればよいですか? があります。 Verify() vs. Verifable() というのは、本当にわかりにくいですね。

どのように解決するのですか?

を使用することができます。 Times.Once() 或いは Times.Exactly(1) :

mockContext.Verify(x => x.SaveChanges(), Times.Once());
mockContext.Verify(x => x.SaveChanges(), Times.Exactly(1));

のメソッドを紹介します。 時代 クラスとなります。

  • AtLeast - モック化されたメソッドが最低限何回起動されるかを指定します。
  • AtLeastOnce - モックメソッドが最低限一回起動されるように指定します。
  • AtMost - モックメソッドの起動回数を最大で2回と指定します。
  • AtMostOnce - モックメソッドが最大で1回実行されることを指定します。
  • Between - モックメソッドが from と to の間で起動されることを指定します。
  • Exactly - モックメソッドがちょうど何回目かに起動されるように指定します。
  • Never - モックメソッドが起動されないように指定します。
  • Once - モックメソッドが一度だけ起動されるように指定します。

メソッド呼び出しであることを忘れないでください。私は何度もつまずき、プロパティだと思い込んで、括弧を忘れてしまいました。