2


0

テストオブジェクトのグラフを作成するためのパターン?

複雑なオブジェクトGraphを必要とするメソッドの単体テストを作成する必要があります。 現在、以下に示すように、各テストに対してCreateメソッドを作成しています。

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

createメソッドには約10のステップがあり、それぞれ1〜2ステップ異なる場合があります。 複雑なオブジェクトグラフを作成する最良の方法は何ですか。 各テストのCreateメソッドを作成することとは別に、単一のCreateメソッドにパラメーターを追加できますが、テストの数が約10程度の場合、混乱する可能性があります。

2 Answer


1


ステップをメソッドに抽出し、場合によってはパラメータ化して、チェーン可能にすると、次のように記述できます。

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

意味のある名前を選択すると、フィクスチャが読みやすくなります。


1


かなりの量の一般的なセットアップコードを - もちろん、setup()メソッドを使用してから、オブジェクトグラフを変更します 個々のテストごとにわずかに。 異なるテストのセットアップが十分に異なる場合、テストを別々のクラスに配置し、それらのセットアップを各テストクラスに個別に配置することをお勧めします。