オブジェクトがあります
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つのコンストラクターが必要です。コンストラクタはビジネス機能を提供しないため、これはクリーンではありません。
プロパティを仮想化して、クラスをスタブできるようにします。しかし、プロパティを仮想にマークしても、ビジネス上の価値はなく、クラスを汚染します。
オブジェクトビルダーをクラスに追加して、内部でオブジェクトを構築します。この場合も、ビジネスに付加価値はありません。おそらく少しクリーンですが、ドメインオブジェクト内の関連性のないコードがまだたくさんあります。
ここに提案、アドバイス、または代替オプションがありますか?