【问题标题】:Junit : add handling logic when exception is not expectedJunit : 在不期望异常时添加处理逻辑
【发布时间】:2010-05-04 10:07:30
【问题描述】:

我正在尝试打印异常的堆栈跟踪。

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

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

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

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

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

【问题讨论】:

    标签: exception junit


    【解决方案1】:

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

    【讨论】:

    • 我可以做到,但我只是想知道是否有其他解决方案。
    • @franziga,你的意思是什么——这只是理论上的兴趣,还是你想真正实现一些具体的目标?
    【解决方案2】:

    您是否尝试过实现WatchmanTest.failed

    【讨论】:

      【解决方案3】:

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

      @Test
      public void myTest() throws Exception {
      
          catchException(obj).doSomethingExceptional();
          log(caughtException());
          assertTrue(caughtException() instanceof MyException.class);
          assertEquals("expected message", caughtException().getMessage());
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-14
        • 1970-01-01
        • 2013-05-11
        • 2016-04-13
        • 2012-11-11
        • 2021-12-31
        相关资源
        最近更新 更多