验证起订量以供参考

时间:2018-09-21 16:16:22

标签: c# nunit moq

每个重复标记的更新,被标记的重复标记大多数是关于使用ref或out设置moq对象的,而不是真正地验证它们。我看到我可以在我的verify语句中使用ref It.Ref.IsAny,但我想验证是否正确设置了值,而不仅是方法被调用。

我正在尝试为一些旧代码编写测试用例,该方法调用存储库以进行插入,但是存储库方法接受对对象的引用。因此,我正在尝试测试的方法的基本流程:

  1. Nunit中的呼叫服务方法
  2. Service方法根据传入的参数创建对象
  3. 服务调用存储库以进行插入
  4. 服务方法不返回任何内容

使用Moq,我已经设置了模拟的存储库类,并且可以验证它是否确实执行了调用,但是我希望能够验证它是否正确生成了对象。我正在构建一个相同的对象,并尝试通过以下方式进行验证调用:

self.documentTable.reloadData()

我的测试用例抛出了一个不匹配的错误。单步执行代码,我可以验证两个对象是否相同,但是我猜是因为我传递了引用,所以引用是不同的吗?有什么想法吗?谢谢!

更新为包含完整的测试方法和被测方法:

_mockWorkerRepository.Verify(w => w.Create(ref newWorker), Times.Once);

1 个答案:

答案 0 :(得分:0)

您可以使用It.Is<>,它允许您指定使用完全特定的一组参数进行的呼叫。

_mockWorkerRepository.Verify(w => w.Create(It.Is<NewWorker>(x => x.Variable == "mytestvariable")), Times.Once);