興味深い要件があります。アプリケーションのテスト ケース カバレッジを可能な限り改善したいと考えています。パラメータ化された Junit を使用して、多数の異なる入力でテストケースを実行しています。サンプル テスト クラスは次のようになります。
@Parameters
public static Collection<Object[]> testInputs()
{
return Arrays.asList({
{1, CoreMatchers.is(1)},
{2, CoreMatchers.is(2)}
});
}
@Test
public test()
{
myApp.run();
assertThat(myApp.getA(), matcher);
}
このようにして、テスト パラメーターを使用してアサーション ロジックを定義しました。テストケースで複数のマッチャーを実行したいのですが、そのうちのいくつかは私が書いたカスタムマッチャーにすることができます。
@Parameters
public static Collection<Object[]> testInputs()
{
return Arrays.asList({
{1, Arrays.asList( CoreMatchers.is(1), CustomMatchers.status(1) ) },
{2, Arrays.asList( CoreMatchers.is(2), CustomMatchers.status(2) ) }
});
}
そして、アサーションは次のようになります。
for(Matcher<MyApp> matcher: matchers)
{
assertThat(myApp, matcher);
}
しかし問題は、両方のマッチャーが異なるオブジェクトで実行されることです。CustomMatcher を定義する最良の方法は何ですか??
マッチャーのタイプによってアサーションを分類する必要がありますか?
助けていただければ幸いです。前もって感謝します。