我有这种方法要与JUnit一起测试。它将String转换为LocalDate。
public static LocalDate convertDate(String aDate) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
LocalDate localDate = LocalDate.parse(aDate, formatter);
return localDate;
}
答案 0 :(得分:3)
这样的代码很容易进行单元测试:您可以使用特定的字符串调用该方法,然后检查该方法是否返回符合您期望的LocalDate。
答案 1 :(得分:2)
您的测试方法可能类似于:
@org.junit.Test
public void test() {
ClassUnderTest classUnderTest = new ClassUnderTest();
LocalDate result = classUnderTest.convertDate("22-04-2019");
assertEquals(result.getDayOfMonth(), 22);
assertEquals(result.getMonth(), Month.APRIL);
assertEquals(result.getYear(), 2019);
}
对此有几点评论:
我使用ClassUnderTest的实例。通常,在不需要时我不喜欢使用静态方法。在依赖于相关类的测试中,实例方法更易于模拟。
在我的情况下,我也使用日期格式“ dd-MM-yyyy”。您可以根据需要更改断言。