单元测试,大型设置/夹具



假设我们在DI上与其他服务Service。被测试的方法对输入数据进行一些处理,进行一些验证,调用其中几个注入的服务(只能获取数据或修改数据,然后返回一些东西(,然后返回一些东西。

鉴于这种情况,我需要编写许多案例来测试所有可能的行为,例如验证异常、未找到异常、业务异常、正常流程等......

问题是我需要模拟注入服务上的所有方法以进行设置。这可能会快速增长。

在这种大型/复杂方法中,夹具和设置(模拟依赖关系(的最佳方法是什么?有没有解决这个问题的模式?

对于数据模拟,我使用builder pattern很好地简化了任务。

您应该尝试创建独立的类,您可以在不引入太多依赖项的情况下对其进行测试,但在某些时候会有一个使用其他组件的类(例如 ViewModel(。在这种情况下,我使用: https://github.com/AutoFixture/AutoFixture

它有助于创建被测试的系统/类,并有助于注入依赖项。您可以将其与 NSubstitute 一起使用,但不仅与它一起使用。

使用AutoFixture,您可以创建您将检查的模拟类,但是不需要的其余依赖项AutoFixture将为您自动生成,因此扩展构造函数不会导致修改单元测试。

最新更新