序
junit4的Parameterized tests的使用方法太过费劲了,这里介绍下如何使用JUnitParams来简化Parameterized tests。
junit4原生的Parameterized tests实例
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Collection
JUnitParams的使用
maven
pl.pragmatists
JUnitParams
1.1.0
test
实例
@RunWith(JUnitParamsRunner.class)
public class PersonTest {
@Test
@Parameters({"17, false",
"22, true" })
public void personIsAdult(int age, boolean valid) throws Exception {
assertThat(new Person(age).isAdult(), is(valid));
}
}
junit5的更新
当然junit5也对Parameterized tests的使用进行简化,如下:
@ParameterizedTest
@EnumSource(value = TimeUnit.class, names = { "DAYS", "HOURS" })
void testWithEnumSourceInclude(TimeUnit timeUnit) {
assertTrue(EnumSet.of(TimeUnit.DAYS, TimeUnit.HOURS).contains(timeUnit));
}
小结
如果还是使用junit5之前的版本,那么可以尝试使用JUnitParams来简化Parameterized tests。如果你已经使用junit5,那么恭喜你,可以不用额外引入JUnitParams就可以方便地进行Parameterized tests。
doc
parameterized-tests
JUnitParams
writing-tests-parameterized-tests