首页 > 解决方案 > 单元测试 try catch 抛出异常的最佳方法是什么?

问题描述

final GregorianCalendar calendar = new GregorianCalendar();
final XMLGregorianCalendar dt;
try {
    dt = DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
} catch (DatatypeConfigurationException e) {
throw new IllegalArgumentException(e);
} return dt;

标签: javaspring-boot

解决方案


您可以编写一个 Junit4 库来测试IllegalArgumentException.class异常如下假设您的方法签名是XMLGregorianCalendar getCalendar()

@Test(expected = IllegalArgumentException.class)
public void whenExceptionThrown_thenExpectationSatisfied() {
    getCalendar();
}

XMLGregorianCalendar getCalendar() {
        final GregorianCalendar calendar = new GregorianCalendar();
        final XMLGregorianCalendar dt;
        try {
            dt = DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
        } catch (DatatypeConfigurationException e) {
            throw new IllegalArgumentException(e);
        }
        return dt;
    }

六月 5

@Test
void testGetCalendar() {
  Assertions.assertThrows(IllegalArgumentException.class, () -> {
    getCalendar();
  });

}

推荐阅读