Tenemos el objeto
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;}
}
En nuestro código de producción, completamos este objeto a través de automapper. Puede acceder a las propiedades y configurarlas correctamente.
Ahora, cuando queremos probar esta clase en una tubería futura, no es posible llenar las propiedades con valores ficticios (para ser probados).
Hay algunas opciones disponibles.
Constructores personalizados para aceptar los parámetros requeridos para las pruebas y establecer las propiedades, actualmente se requieren 3 constructores. Esto no está limpio ya que los constructores no sirven a ninguna funcionalidad comercial.
Haga que las propiedades sean virtuales para que la clase pueda ser troceada Pero marcar las propiedades virtuales no proporciona ningún valor comercial y contamina mi clase.
Agregue un generador de objetos a la clase para construir internamente el objeto. Nuevamente, no hay valor comercial agregado. Quizás un poco más limpio, pero aún hay mucho código no relevante en los objetos de dominio.
¿Alguna sugerencia, consejo u opciones alternativas aquí?
fuente