2010-05-04 35 views
0

我想打印异常的堆栈跟踪。Junit:添加处理逻辑,当不期望异常

但是,对于否定测试用例,仅打印意外的异常。

我正在使用@Rule ExpectedException来执行异常检测。

我不知道如何添加处理逻辑,以防万一引发意外的异常。

@Rule 
public ExpectedException thrown = ExpectedException.none(); 

@Test 
public void myTest() throws Exception { 
    thrown.expect(MyException.class); 
    thrown.expectMessage("expected message"); 
} 

回答

1

难道你不能简单地在你的测试方法中捕获异常,然后打印堆栈跟踪? (如果你想的话,甚至可以重新抛出它)。

+0

我能做到这一点,但我只是想知道是否有对任何其他解决方案。 – franziga 2010-05-04 14:49:42

+0

@franziga,你的意思是 - 这只是理论上的兴趣,还是你想实际做到具体的事情? – 2010-05-05 07:44:57

+0

都:) 您的解决方法当然满足我的要求。 – franziga 2010-05-05 08:35:38

0

Franziga,你可以尝试catch-exception,以满足您的理论兴趣:

@Test 
public void myTest() throws Exception { 

    catchException(obj).doSomethingExceptional(); 
    log(caughtException()); 
    assertTrue(caughtException() instanceof MyException.class); 
    assertEquals("expected message", caughtException().getMessage()); 

}