在像
这样的命令中var mockObj = new Mock<MyObject>()
var anotherObj = Utilities.DoStuff();
// some tests...
mockObj.Verify(foo => foo.someMethod(anotherObj));
Moq是否按身份使用比较或使用.Equals()
确定someMethod()
是否曾使用anotherObj
作为参数进行调用?换句话说,我指示为foo.someMethod()
的参数的对象是否必须与先前为验证通过而调用someMethod()
的对象完全相同,或者它只需要是一个等于anotherObj
?
答案 0 :(得分:14)
Moq
将按标识进行比较,它将查找您使用标识指定的确切实例。如果这不是您想要的,而您正在寻找equals
比较,则可以使用It.Is
:
mockObj.Verify(foo => foo.someMethod(It.Is<MyObject>(m => m.Equals(anotherObj))));