方法不会在JUnit5测试用例中抛出

问题描述 投票:0回答:1

我有一个自定义Log4j附加器,该附加器被实现为Singleton类,并且在调用该类的getInstance()方法时需要一个Layout对象。我编写了一个JUnit5测试用例,以测试未设置Layout对象时是否引发异常。如果未设置布局,我抛出了IllegalArgumentException

下面的代码在执行时引发异常

public class App {
    public static void main(String[] args){
        Logger logger = Logger.getLogger("test");

        CustomAppender m = CustomAppender.getInstance();
        logger.addAppender(m);

        logger.info("test"); // Exception is thrown by this statement
    }
}

但是,下面的测试用例失败。实际上,不会引发任何异常。

@Test
public void testException(){
    Logger logger = Logger.getLogger("test");

    CustomAppender m = CustomAppender.getInstance();
    logger.addAppender(m);

    assertThrows(Exception.class, () -> {
        logger.info("test");
    });
}

我在这里想念什么?

java log4j tdd junit5 assertion
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.