【发布时间】:2019-04-22 11:27:15
【问题描述】:
我不能写一个方法来测试,日期的格式是否正确。
我写了一个检查日期格式是否正确的方法,但它给出了错误的结果,我找不到错误。
boolean isDateFormatCorrect(String date) {
LocalDate ld = null;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH);
ld = LocalDate.parse(date, formatter);
String result = ld.format(formatter);
return result.equals(date);
}
@ParameterizedTest
@CsvSource({"2019-04-20", "2017-01-13"})
void isDateFormatCorrect(String date) {
assertThat(currencyService
.isDateFormatCorrect(date))
.isEqualTo(true);
}
@ParameterizedTest
@CsvSource({"20-04-2019", "01-01-1999", "22/2/2012", "2012/2/12"})
void isDateFormatNotCorrect(String date) {
assertThat(currencyService
.isDateFormatCorrect(date))
.isEqualTo(false);
}
第一个测试提供正确答案,而第二个测试提供一个例外:
java.time.format.DateTimeParseException: Text '20-04-2019' could not be parsed at index 0
我相信答案很简单,但我已经尝试修复了一个多小时,但我已经失去了想法。
【问题讨论】:
-
嗯,你非常需要捕捉异常,伙计。
-
我不确定您的期望,但除了解析可能产生的异常之外,您没有做任何事情。