我正在测试Xalan使用的WeekConverter并想知道我的测试究竟在做什么。 :dJUnit测试异常期望(多重声明)
具有以下测试方法:
@Test(expected = IllegalArgumentException.class)
public void testConvertTwoDigitYearWithWrongInput() {
WeekConverter weekConverter = new WeekConverter(WeekConverter.Strategy.TWO_DIGIT_YEAR);
//wrong or empty inputs
assertEquals("0", weekConverter.convert(""));
assertEquals("0", weekConverter.convert("abcdefgh"));
}
将这个测试期望对所有异常断言,或者只对第一个断言?如果只有第一个,这意味着我必须为每个断言创建一个测试方法,但我期望在这两种情况下都有相同的异常。有人可以在这里确认我的例子吗?
我也有一个测试null,这会产生一个空指针异常。软验证是以下情况:
if (inputDate == null) {
do something and throw NullPointerexception
} else if (inputDate.isEmpty()) {
do something and throw IllegalArgumentException, since inputDate is not really null
} else if (inputDate.matches(regex)) {
go futher and convert
} else {
do something and throw IllegalArgumentException, since inputDate does not match regex
}
因此所述一个测试方法期待抛出:IllegalArgumentException具有两个断言。但很显然,我需要两种不同的测试方法,不仅要尊重JUnit的功能,还要期待两种不同的状态。
既然你期待一个例外,你并不需要断言等于 - 所有你需要的是转换的呼叫。 – avandeursen 2011-12-26 21:41:34