最小起订量:验证方法是否仅使用给定参数调用一次的正确方法?

Moq: Proper way to verify that a method was called just once with given parameters?

为了确保一个方法只用给定的参数执行一次(并且只用那些参数),我想我必须检查它两次,比如:

_fileHandlerMock.Verify(x => x.DeleteFile("file.txt"), Times.Once);
_fileHandlerMock.Verify(x => x.DeleteFile(It.IsAny<string>()), Times.Once);

有没有更好的检查方法,比如 "exclusive" 选项之类的?

Moq 库提供了专门用于该目的的方法。它是 VerifyNoOtherCalls,它与验证结合使用,它将确保除了(已经)验证的调用之外没有进行其他调用。

_fileHandlerMock.Verify(x => x.DeleteFile("file.txt"), Times.Once);
_fileHandlerMock.VerifyNoOtherCalls();