Moq:验证给定参数仅调用一次方法的正确方法?

时间:2019-06-03 08:02:47

标签: moq

为确保某个方法仅在给定参数(且仅那些参数)下执行一次,我想我必须对其进行两次检查,如下所示:

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

是否有更好的检查方式,例如“独占”选项?

1 个答案:

答案 0 :(得分:1)

Moq 库提供了专门用于此目的的方法。它是VerifyNoOtherCalls,与验证结合使用,它将确保除了(已)经过验证的呼叫之外,不会进行其他任何呼叫。

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