簡體   English   中英

Moq.Mock.Verify()是否使用identity或.Equals()比較參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM