2010-08-31 4 views
2

Je dois écrire Unit Tests pour une méthode qui nécessite un objet complexe Graph. Actuellement, j'écris une méthode Create pour chaque test, comme indiqué ci-dessous.Modèle pour créer un graphique d'objets de test?

1. private static Entity Create_ObjectGraph_For_Test1() 
2. private static Entity Create_ObjectGraph_For_Test2() 
...... And So on 

La méthode create a environ 10 étapes et ils peuvent varier en 1-2 étapes avec l'autre. Quelle est la meilleure façon de créer un graphique d'objet complexe. En dehors de la création d'une méthode Create pour chaque test, je peux ajouter un paramètre à une seule méthode Create mais cela peut devenir confus si le nombre de tests est d'environ 10 ou plus.

+0

duplication possible de [modèle Test Data Builder: plus utile ou plus d'entretien?] (Http://stackoverflow.com/questions/187799/test-data-builder-pattern-more-useful-or-more-upkeep) –

Répondre

1

Vous pouvez extraire les étapes dans les méthodes, éventuellement les paramétrisant, et les rendre capables chaîne de telle sorte que l'on peut écrire:

Entity myGraph = GraphFactory.createGraph().step1().step2(<parm>).step3(<parm>); 

choising des noms significatifs rend lisible l'appareil.

1

Il est possible de mettre une quantité importante de code d'installation commun dans - bien sûr: la méthode setup(), puis de modifier légèrement le graphe d'objet pour chaque test individuel. Si les configurations pour les différents tests sont suffisamment différentes, alors je vous encourage à placer les tests dans des classes séparées et leur configuration dans chaque classe de test indépendamment.

Questions connexes