我有一個有趣的需求。我想在我的應用程序中儘可能使用更好的測試用例。我使用參數化的Junit來運行具有不同輸入數量的測試用例。我的示例測試課程如下所示:編寫更好的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的最佳方式?
我應該按照匹配器的類型對斷言進行分類嗎?
我將不勝感激任何幫助。提前致謝。