Java-如何在Junit中使用注释 - eclipse

时间:2014-10-01 09:56:55

标签: java exception testing junit annotations

我正在尝试测试一个方法是否在Junit中使用下面的代码抛出IllegalArgumentException,但是它不起作用。 Eclipse建议创建一个注释类,这让我有点困惑。我可以在不使用注释的情况下逃脱吗?否则什么是最好的解决方案呢?

  @Test(expected = IllegalArgumentException.class)
      public void testRegister(){
            myProgram.register(-23); //the argument should be positive 
      }

2 个答案:

答案 0 :(得分:1)

我经常尝试捕捉我感兴趣的例外情况,并且如果我被抓住就通过测试。尝试这样的事情:

try {
    myProgram.register(-23);
    // (optional) fail test here
}
catch (IllegalArgumentException e){
    // pass test here
}
catch (Exception e) {
    // (optional) fail test here
}

答案 1 :(得分:0)

如果您不想使用注释,您可以捕获所有异常并在断言中测试异常是实例IllegalArgumentException。

Exception e = null;
try {
  // statement that should cause exception
} catch(Exception exc) {
  e = exc;
}

// Assert that e is not null to make sure an exception was thrown
// Assert that e is of type IllegalARgumentException

但最终只使用JUnit注释要简单得多。这似乎对我来说是正确的。