如果抛出异常将测试失败?

时间:2013-11-06 15:07:26

标签: java junit

如果junit测试抛出异常:

public void mytest throws InvalidUsageException

这是否意味着如果测试抛出InvalidUsageException,那么测试将失败?

如果是这样的话,更好的设计是将一个异常包装在一个try / catch块中,并且抛出异常显然失败了吗?

4 个答案:

答案 0 :(得分:2)

首先,是的,你的测试会失败。

其次,我不会用try catch包装。如果发生异常,您希望让它发生,以便您知道发生了错误,而不仅仅是方法本身的错误。

答案 1 :(得分:2)

如果抛出此异常,测试将失败。 如果您的测试是要查看是否抛出某个异常,您应该开始测试,如

@Test(expected=InvalidUsageException.class)
  public void mytest {
    ...
  }

答案 2 :(得分:1)

是的,这会失败。如果您预计会出现异常,请使用@Test(expect=ExceptionClassName.class

答案 3 :(得分:1)

你说的可能是一个解决方案

public void mytest() {
  try {
     // your code
     fail();
  } catch (InvalidUsageException e) {
     // success 
  }
}

更快的方法(但我不会说更清楚)

@Test (expected = Exception.class)
public void mytest() {
  // your code
}

此处有更多此类示例http://www.vogella.com/articles/JUnit/article.html