集成测试:验证任何通过的内容

Integration testing: verifty anything that gets passed

对于我的 Asp.Net 核心应用程序,我正在使用带有 Moq 的 nUnit 框架编写集成测试。

我的服务(Mega Services)正在与多个其他服务(Tiny Services)一起工作。
例如,我有一个名为 WorkflowService 的大型服务,它调用两个小服务:StepServiceHistoryService.

我正在编写一个集成测试以确保 StepServiceHistoryservice 的正确方法总是被 调用工作流服务.

问题是 WorkflowService 传递给我的微型服务的数据需要计算和类型转换。这些工作在单独的单元测试中处理(使用 Moq 进行模拟),我不想在这里再次重复。我只想检查微型服务的方法是否被调用。其实我并不关心这里的输入数据。

据我所知,当我们使用Mock对象的Verify方法时,我们也应该传递参数。

是否有一些变通方法可以让 Verify 方法只检查方法调用而不检查输入数据?

它应该以某种方式忽略输入,或者只检查类型(而不是对象引用),这样我就可以将任何数据传递给它而不必担心输入的有效性。

试试这个:

    mockSomeClass.Verify(mock => mock.DoSomething(It.IsAny<object>()), Times.Once());