Nous avons l'objet
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;}
}
Dans notre code de production, nous remplissons cet objet via automapper. Il peut accéder aux propriétés et les définir correctement.
Maintenant, lorsque nous voulons tester cette classe dans un futur pipeline, il n'est pas possible de remplir les propriétés avec des valeurs fictives (à tester).
Il y a quelques options disponibles.
Constructeurs personnalisés pour accepter les paramètres requis pour les tests et définir les propriétés, actuellement 3 constructeurs sont requis. Ce n'est pas propre car les constructeurs ne servent aucune fonctionnalité métier.
Rendez les propriétés virtuelles afin que la classe puisse être tronquée. Mais marquer les propriétés virtuelles ne fournit aucune valeur commerciale et pollue ma classe.
Ajoutez un générateur d'objet à la classe pour construire en interne l'objet. Encore une fois, aucune valeur commerciale ajoutée. Peut-être un peu plus propre mais toujours beaucoup de code non pertinent dans les objets du domaine.
Des suggestions, des conseils ou des options alternatives ici?