Abbiamo l'oggetto
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;}
}
Nel nostro codice di produzione popoliamo questo oggetto tramite l'automapper. Può accedere alle proprietà e impostarle correttamente.
Ora, quando vogliamo testare questa classe in una futura pipeline, non è possibile popolare le proprietà con valori fittizi (da testare).
Ci sono alcune opzioni disponibili.
-
Costruttori personalizzati per accettare i parametri richiesti per i test e impostare le proprietà, attualmente sono richiesti 3 costruttori. Questo non è pulito poiché i costruttori non offrono alcuna funzionalità aziendale.
-
Rendi virtuali le proprietà in modo che la classe possa essere cancellata. Ma contrassegnare le proprietà virtuali non fornisce alcun valore aziendale e inquina la mia classe.
-
Aggiungi un costruttore di oggetti alla classe per costruire internamente l'oggetto. Ancora nessun valore commerciale aggiunto. Forse un po 'più pulito ma ancora un sacco di codice non rilevante negli oggetti del dominio.
Qualche suggerimento, consiglio o opzioni alternative qui?