最小起订量:验证方法是否仅使用给定参数调用一次的正确方法?
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();
为了确保一个方法只用给定的参数执行一次(并且只用那些参数),我想我必须检查它两次,比如:
_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();