我有一个自定义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");
});
}
我在这里想念什么?