每个重复标记的更新,被标记的重复标记大多数是关于使用ref或out设置moq对象的,而不是真正地验证它们。我看到我可以在我的verify语句中使用ref It.Ref.IsAny,但我想验证是否正确设置了值,而不仅是方法被调用。
我正在尝试为一些旧代码编写测试用例,该方法调用存储库以进行插入,但是存储库方法接受对对象的引用。因此,我正在尝试测试的方法的基本流程:
使用Moq,我已经设置了模拟的存储库类,并且可以验证它是否确实执行了调用,但是我希望能够验证它是否正确生成了对象。我正在构建一个相同的对象,并尝试通过以下方式进行验证调用:
self.documentTable.reloadData()
我的测试用例抛出了一个不匹配的错误。单步执行代码,我可以验证两个对象是否相同,但是我猜是因为我传递了引用,所以引用是不同的吗?有什么想法吗?谢谢!
更新为包含完整的测试方法和被测方法:
_mockWorkerRepository.Verify(w => w.Create(ref newWorker), Times.Once);
答案 0 :(得分:0)
您可以使用It.Is<>
,它允许您指定使用完全特定的一组参数进行的呼叫。
_mockWorkerRepository.Verify(w => w.Create(It.Is<NewWorker>(x => x.Variable == "mytestvariable")), Times.Once);