你如何断言在JUnit 4测试中抛出某个异常?

问题:

如何用惯用的JUnit4来测试一些代码是否引发异常?
虽然我可以这样做:

@Test
public void testFooThrowsIndexOutOfBoundsException() {
  boolean thrown = false;

  try {
    foo.doStuff();
  } catch (IndexOutOfBoundsException e) {
    thrown = true;
  }

  assertTrue(thrown);
}

我记得有一个注释或者一个Assert.xyz或者something,对于这种情况来说,这个方法远远不如JUnit那么笨拙,而且还有更多的精神。

回答:

JUnit 4支持:

@Test(expected = IndexOutOfBoundsException.class)
public void testIndexOutOfBoundsException() {
    ArrayList emptyList = new ArrayList();
    Object o = emptyList.get(0);
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do you assert that a certain exception is thrown in JUnit 4 tests?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

95 − = 85