如何测试一个方法什么都不做。例如,我有一个静态方法,如果给定的字符串参数为null或空(它用于参数验证),则会引发异常。现在我的测试是这样的:JUnit4 - 测试方法什么都不做
@Test
public void notNullOrEmpty_doesNothingIfValueIsNotNullOrEmpty() {
Require.notNullOrEmpty(Generate.randomString());
assertTrue(true); // <- this looks very ugly
}
@Test(expected = IllegalArgumentException.class)
public void notNullOrEmpty_throwsExceptionIfValueIsNull() {
Require.notNullOrEmpty(null);
}
@Test(expected = IllegalArgumentException.class)
public void notNullOrEmpty_throwsExceptionIfValueIsEmpty() {
Require.notNullOrEmpty("");
}
我怎样才能让第一个测试通过,而无需调用assertTrue(true)
,有Assert.fail()
是有什么样的Assert.pass()
?
编辑: 新增失踪(expected = IllegalArgumentException.class)
至3测试
万一需要类不真的只是检查null或空考虑使用从番石榴库Preconditions.checkArgument(Strings.isNullOrEmpty(“MyString的”))井试验班; – sandrozbinden
同时请记住仔细使用随机生成的字符串作为测试输入。请参阅http://stackoverflow.com/questions/3441686/what-are-the-downsides-using-random-values-in-unit-testing – sandrozbinden