为确保某个方法仅在给定参数(且仅那些参数)下执行一次,我想我必须对其进行两次检查,如下所示:
_fileHandlerMock.Verify(x => x.DeleteFile("file.txt"), Times.Once);
_fileHandlerMock.Verify(x => x.DeleteFile(It.IsAny<string>()), Times.Once);
是否有更好的检查方式,例如“独占”选项?
答案 0 :(得分:1)
Moq
库提供了专门用于此目的的方法。它是VerifyNoOtherCalls
,与验证结合使用,它将确保除了(已)经过验证的呼叫之外,不会进行其他任何呼叫。
_fileHandlerMock.Verify(x => x.DeleteFile("file.txt"), Times.Once);
_fileHandlerMock.VerifyNoOtherCalls();