集成测试:验证任何通过的内容
Integration testing: verifty anything that gets passed
对于我的 Asp.Net 核心应用程序,我正在使用带有 Moq 的 nUnit 框架编写集成测试。
我的服务(Mega Services)正在与多个其他服务(Tiny Services)一起工作。
例如,我有一个名为 WorkflowService 的大型服务,它调用两个小服务:StepService 和 HistoryService.
我正在编写一个集成测试以确保 StepService 和 Historyservice 的正确方法总是被 调用工作流服务.
问题是 WorkflowService 传递给我的微型服务的数据需要计算和类型转换。这些工作在单独的单元测试中处理(使用 Moq 进行模拟),我不想在这里再次重复。我只想检查微型服务的方法是否被调用。其实我并不关心这里的输入数据。
据我所知,当我们使用Mock
对象的Verify
方法时,我们也应该传递参数。
是否有一些变通方法可以让 Verify
方法只检查方法调用而不检查输入数据?
它应该以某种方式忽略输入,或者只检查类型(而不是对象引用),这样我就可以将任何数据传递给它而不必担心输入的有效性。
试试这个:
mockSomeClass.Verify(mock => mock.DoSomething(It.IsAny<object>()), Times.Once());
对于我的 Asp.Net 核心应用程序,我正在使用带有 Moq 的 nUnit 框架编写集成测试。
我的服务(Mega Services)正在与多个其他服务(Tiny Services)一起工作。
例如,我有一个名为 WorkflowService 的大型服务,它调用两个小服务:StepService 和 HistoryService.
我正在编写一个集成测试以确保 StepService 和 Historyservice 的正确方法总是被 调用工作流服务.
问题是 WorkflowService 传递给我的微型服务的数据需要计算和类型转换。这些工作在单独的单元测试中处理(使用 Moq 进行模拟),我不想在这里再次重复。我只想检查微型服务的方法是否被调用。其实我并不关心这里的输入数据。
据我所知,当我们使用Mock
对象的Verify
方法时,我们也应该传递参数。
是否有一些变通方法可以让 Verify
方法只检查方法调用而不检查输入数据?
它应该以某种方式忽略输入,或者只检查类型(而不是对象引用),这样我就可以将任何数据传递给它而不必担心输入的有效性。
试试这个:
mockSomeClass.Verify(mock => mock.DoSomething(It.IsAny<object>()), Times.Once());