我有以下Junit测试
@Before
public void setup() {
UUTClass myObject = new UUTClass();
}
@After
public void teardown() {
// cleanup
}
@Test
public void testSomeMethod() {
myObject.invokeSomeMethod(); // This is throwing NPE from somewhere inside my UUTClass
}
我不想使用expected=NullPointerException.class
我想要的是从我的UUTClass记录堆栈跟踪。在我的测试方法中,我只能看到NullPointerException
一个衬垫。
我正在使用Log4j记录所有内容,我在搜索路径中有log4j.xml,它确实被初始化程序接收。我可以看到我的记录器消息正在打印其他项目。
如何让Junit返回/传播我的UUTClass抛出的NPE的完整堆栈跟踪?我相信这可能是因为错误被重定向到错误控制台并且可能没有被log4j接收(不知道我是否解释了这一点)。
作为一种解决方法,我现在可能会使用printStackTrace()
。但理想情况下,如果可能,我想记录下来。
我的意图是第一次了解设计中我错过了导致此NPE的条件/约束,然后构建更多测试以期望某些异常。 的问候,