我是否应该根据测试代码重构我的系统,以接受对象图而不是每个依赖的对象?
因为我没有开始考虑单元测试的解决方案,所以我正在重构可测试性。
我通过构造函数注入了所有依赖项:
var myApp = new MyClass(DependencyOne, DependencyTwo, ...DependencyTen)
在构造函数中,我正在初始化我对这些依赖项的私有性:
MyClass
{
MyClass(IDependencyOne, IDependencyTwo, ...IDependencyTen)
{
dependencyOne = IDependencyOne;
dependencyTwo = dependencyTwo ;
...
dependencyTen = IDependencyTen;
}
}
对于我的单元测试,我现在可以模拟每个依赖项:
var mockDep1 = new Mock<IDependencyOne>();
var mockDep2 = new Mock<IDependencyTwo>();
...
var sut = new MyClass(mockDep1.Object, mockDep2.Object..)
构建代码的最佳标准方法是什么,它接受大量依赖项才能测试?
答案 0 :(得分:1)
我认为,有几种方法可以解决测试中的依赖关系。
我建议使用automocking containers例如structure map 它非常干净,无需更新测试类即可轻松添加依赖项。
此外,您可以避免使用IoC并手动解决所有依赖项或使用testable pattern。