Chúng tôi có đối tượng
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;}
}
Trong mã sản xuất của chúng tôi, chúng tôi đưa đối tượng này thông qua automapper. Nó có thể truy cập các thuộc tính và đặt chúng chính xác.
Bây giờ khi chúng tôi muốn kiểm tra lớp này trong một đường ống trong tương lai, không thể đưa vào các thuộc tính bằng các giá trị giả (để được kiểm tra).
Có một vài lựa chọn có sẵn.
Các nhà xây dựng tùy chỉnh để chấp nhận các tham số cần thiết cho các thử nghiệm và đặt các thuộc tính, hiện tại cần 3 nhà xây dựng. Điều này không sạch vì các nhà xây dựng không phục vụ bất kỳ chức năng kinh doanh nào.
Làm cho các thuộc tính ảo để lớp có thể được khai thác. Nhưng việc đánh dấu các thuộc tính ảo không cung cấp bất kỳ giá trị kinh doanh nào và gây ô nhiễm cho lớp của tôi.
Thêm một trình xây dựng đối tượng vào lớp để xây dựng bên trong đối tượng. Một lần nữa không có giá trị kinh doanh gia tăng. Có lẽ sạch hơn một chút nhưng vẫn còn rất nhiều mã không liên quan trong các đối tượng miền.
Bất kỳ đề xuất, lời khuyên hoặc lựa chọn thay thế ở đây?