单元测试C#重构静态方法

The*_*ies 1 c# testing

我有一些类(称为A类),我想进行单元测试,但它使用一些类(称为B类)和一些静态方法.

要使用静态方法删除对这些类的引用,我必须将它们重构为实例方法并注入到类A中.

问题是A类有很多服务(不仅仅是B类),它似乎依赖于它?

这种情况下最好的选择是什么?有一个构造函数有很多参数可以接受这些服务吗?

或者我的设计是否有问题,A类有如此多的依赖关系?

谢谢

jga*_*fin 5

问题是A类有很多服务(不仅仅是B类),它似乎依赖于它?

几个依赖项通常表示代码气味.你的班级很可能违反单一责任原则.

尝试将类分解为更小的类.

单元测试是一个很好的质量指标.难以测试的类通常违反一个或多个SOLID原则.

这种情况下最好的选择是什么?有一个构造函数有很多参数可以接受这些服务吗?

构造函数注入始终是首选方法,因为很容易分辨类具有哪些依赖项.