如何使用JUnit4管理异常?

时间:2010-10-05 14:51:10

标签: junit4

我的JUnit测试如下:

public class Toto {

    @BeforeClass
    public static void initTest1() {
        try {
            openAppli();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    public void test1() {
        try{
            //do some actions
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    @AfterClass
    public static void AfterTest1() {
        CloseAppli();
    }
}

我想知道:

  1. 编写JUnit测试的预期方式是什么?
  2. 我应该拨打try / catch还是抛出?
  3. 我可以在其他测试类中调用相同的BeforeTest1()和AfterTest1()吗?

2 个答案:

答案 0 :(得分:2)

通常,您不应该捕获Exception基类。 (这有时被称为“口袋妖怪异常处理”,除非您确切知道为什么需要这样做,否则这是不好的做法。)如果您希望抛出异常,您的单元测试应始终测试特定的异常类型,否则他们可能会在不应该的时候通过。

请记住,异常意味着(或应该意味着)您的方法无法按照其名称所做的那样做。在您的代码本身中,您不应该捕获异常,除非您确定您确切知道从中恢复需要做什么。

答案 1 :(得分:1)

如果您希望抛出异常,可以使用

注释您的测试
@Test(expected=Exception.class)

对于你期待的任何异常。

如果没有,您可以声明测试以抛出Exception