[英]Does Moq.Mock.Verify() compare parameters using identity or .Equals()?
在像這樣的命令中
var mockObj = new Mock<MyObject>()
var anotherObj = Utilities.DoStuff();
// some tests...
mockObj.Verify(foo => foo.someMethod(anotherObj));
Moq是使用標識比較還是使用.Equals()
來確定是否曾使用anotherObj
作為參數調用someMethod()
? 換句話說,我指示為foo.someMethod()
的參數的對象是否必須與之前為驗證通過而調用someMethod()
完全相同的對象,或者它只需要是一個相等的對象到anotherObj
?
Moq
將按身份進行比較,它將查找您使用身份指定的確切實例。 如果這不是你想要的,而你正在尋找equals
比較,你可以使用It.Is
:
mockObj.Verify(foo => foo.someMethod(It.Is<MyObject>(m => m.Equals(anotherObj))));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.