Mamy przedmiot
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;}
}
W naszym kodzie produkcyjnym wypełniamy ten obiekt za pomocą automappera. Może uzyskać dostęp do właściwości i ustawić je poprawnie.
Teraz, gdy chcemy przetestować tę klasę w przyszłym potoku, nie jest możliwe wypełnienie właściwości wartościami zastępczymi (do przetestowania).
Dostępnych jest kilka opcji.
Niestandardowe konstruktory do akceptowania parametrów wymaganych do testów i ustawiania właściwości, obecnie wymagane są 3 konstruktory. Nie jest to czyste, ponieważ konstruktory nie obsługują żadnych funkcji biznesowych.
Ustaw właściwości wirtualnie, aby klasa mogła zostać skrócona. Ale zaznaczenie właściwości wirtualnych nie zapewnia żadnej wartości biznesowej i nie zanieczyszcza mojej klasy.
Dodaj konstruktor obiektów do klasy, aby wewnętrznie skonstruować obiekt. Ponownie brak wartości dodanej dla biznesu. Być może nieco czystszy, ale wciąż dużo niepotrzebnego kodu w obiektach domeny.
Wszelkie sugestie, porady lub alternatywne opcje tutaj?
źródło