我有一个方法,当给定的日期和时间无效时抛出异常。
try {
startDateTime = LocalDateTime.parse(startDate, DATE_TIME_FORMATTER);
endDateTime = LocalDateTime.parse(endDate, DATE_TIME_FORMATTER);
} catch (DateTimeParseException e) {
LOGGER.error(ERROR_PARSING_DATE_TIME, e);
return false;
}
在测试中,我试图用无效数据验证此异常。
@Test
public void should_throw_an_exception_if_failed_to_parse_dates() {
try {
parseStartAndEndDates("sdf", "ssdf"); // parsing invalid data here
fail(); //remember this line, else 'may' false positive
} catch (DateTimeParseException e) {
assertThat(e.getMessage(), is(ERROR_PARSING_DATE_TIME));
}
}
但这总是失败。测试这种情况的正确方法应该是什么。
将您的测试代码更改如下,因为false
如果DateTimeParseException
抛出异常,您将返回
@Test
public void should_throw_an_exception_if_failed_to_parse_dates() {
assertThat(parseStartAndEndDates("sdf", "ssdf")).isFalse(); // parsing invalid data here
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句