我们有对象
public class MyObject{
protected MyObject(){}
public string Property1 {get;private set;}
public string Property2 {get;private set;}
public string Property3 {get;private set;}
public string Property4 {get;private set;}
public string Property5 {get;private set;}
public string Property6 {get;private set;}
public string Property7 {get;private set;}
public string Property8 {get;private set;}
public string Property9 {get;private set;}
public string Property10 {get;private set;}
}
在生产代码中,我们通过自动映射器填充此对象。它可以访问属性并正确设置它们。
现在,当我们想在将来的管道中测试此类时,就不可能用伪值(要进行测试)填充属性。
有一些可用的选项。
自定义构造函数接受测试所需的参数并设置属性,目前需要3个构造函数。这是不干净的,因为构造函数不提供任何业务功能。
将属性设置为虚拟,以便可以对类进行存根。但是将属性标记为虚拟不会提供任何商业价值,并且不会污染我的班级。
将一个对象生成器添加到该类以内部构造该对象。再次没有增加业务价值。也许稍微干净一点,但领域对象中仍然有很多无关的代码。
有什么建议,建议或其他选择吗?