如何编写方法的JUnit测试接收字符串并返回LocalDate?

时间:2019-04-22 04:49:36

标签: java testing junit

我有这种方法要与JUnit一起测试。它将String转换为LocalDate。

public static LocalDate convertDate(String aDate) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MMM-yyyy");
        LocalDate localDate = LocalDate.parse(aDate, formatter);

        return localDate;
    }

2 个答案:

答案 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);
}

对此有几点评论:

  1. 我使用ClassUnderTest的实例。通常,在不需要时我不喜欢使用静态方法。在依赖于相关类的测试中,实例方法更易于模拟。

  2. 在我的情况下,我也使用日期格式“ dd-MM-yyyy”。您可以根据需要更改断言。