Java:使用 Junit 3 进行异常测试

2022-09-02 11:17:54

我想为 .请记住,我们应该使用JUnit 3。IndexOutOfBoundsException

我的代码:

public boolean ajouter(int indice, T element) {
    if (indice < 0 || indice > (maListe.size() - 1)) {
        throw new IndexOutOfBoundsException();
    } else if (element != null && !maListe.contains(element)) {
        maListe.set(indice, element);
        return true;
    }
}

经过一些研究,我发现你可以使用JUnit 4来做到这一点,但是我没有在JUnit 3中找到如何做到这一点。@Test(expected = IndexOutOfBoundsException.class)

如何使用 JUnit 3 对此进行测试?


答案 1

在 JUnit 3 中测试异常使用以下模式:

try {
     ... code that should throw an exception ...

     fail( "Missing exception" );
} catch( IndexOutOfBoundsException e ) {
     assertEquals( "Expected message", e.getMessage() ); // Optionally make sure you get the correct message, too
}

确保在代码未引发异常时收到错误。fail()

我在JUnit 4中也使用此模式,因为我通常希望确保在异常消息中可以看到正确的值,并且无法做到这一点。@Test


答案 2

基本上,您需要调用您的方法,如果它没有引发正确的异常 - 或者如果它抛出任何其他异常,则失败:

try {
  subject.ajouter(10, "foo");
  fail("Expected exception");
} catch (IndexOutOfBoundException expect) {
  // We should get here. You may assert things about the exception, if you want.
}

推荐