Junit:添加处理逻辑,当不期望异常
问题描述:
我想打印异常的堆栈跟踪。Junit:添加处理逻辑,当不期望异常
但是,对于否定测试用例,仅打印意外的异常。
我正在使用@Rule ExpectedException来执行异常检测。
我不知道如何添加处理逻辑,以防万一引发意外的异常。
@Rule
public ExpectedException thrown = ExpectedException.none();
@Test
public void myTest() throws Exception {
thrown.expect(MyException.class);
thrown.expectMessage("expected message");
}
答
难道你不能简单地在你的测试方法中捕获异常,然后打印堆栈跟踪? (如果你想的话,甚至可以重新抛出它)。
答
Franziga,你可以尝试catch-exception,以满足您的理论兴趣:
@Test
public void myTest() throws Exception {
catchException(obj).doSomethingExceptional();
log(caughtException());
assertTrue(caughtException() instanceof MyException.class);
assertEquals("expected message", caughtException().getMessage());
}
我能做到这一点,但我只是想知道是否有对任何其他解决方案。 – franziga 2010-05-04 14:49:42
@franziga,你的意思是 - 这只是理论上的兴趣,还是你想实际做到具体的事情? – 2010-05-05 07:44:57
都:) 您的解决方法当然满足我的要求。 – franziga 2010-05-05 08:35:38