当前位置: 首页 > 知识库问答 >
问题:

如何在JUnit5中测试引发异常?[副本]

韶浩皛
2023-03-14

我想使用junit5测试异常是否工作良好。

例如,假设I test queue。

public class ArrayCircleQueue {
    .
    .
    .
    public void enQueue(char item) {
        if (isFull()) {
            throw new IndexOutOfBoundsException("Queue is full now!");
        } else {
            itemArray[rear++] = item;
        }
    }
}
class ArrayCircleQueueTest {
    .
    .
    .
    @org.junit.jupiter.api.Test
    void testEnQueueOverflow() {
        for (int i=0; i<100; i++) {
            queue.enQueue('c');  # test for 10-size queue. It should catch exception
        }
    }
}

共有1个答案

袁泰
2023-03-14
@Test
void exceptionTesting() {
    Throwable exception = assertThrows(IllegalArgumentException.class, () -> {
        arrayCircleQueue.enQueue('a') ;
    });
    assertEquals("Queue is full now!", exception.getMessage());
}

或者你可以试试。

 类似资料:
  • 我有以下简单的类 和以下配置文件 原因:java.lang.ClassNotFoundException:org.springframework.core.annotation.mergedannotations$searchStrategy at java.base/jdk.internal.loader.builtInclassLoader.LoadClass(builtInclassLoad

  • 我有一个类,它有一个方法。我正在做相应的测试,但是我还不能验证是否抛出了定制的异常,我使用的是JUnit5。 我已经复习了这里,但答案并没有帮助我,这是我根据一个示例编写的代码:

  • 问题内容: 在JUnit4中,您可以通过在一种方法中提供参数集合来编写参数化的单元测试,这些参数将被传递给测试的构造函数,并通过另一种方法进行测试。如果我有一个预期引发异常的参数,该如何指定? 问题答案:

  • 我有一个返回类型为的方法。它还可以抛出许多异常,所以我想测试一下那些被抛出的异常。所有尝试都失败了,原因相同: 类型Stubber中的(T)不适用于参数(void)时的方法 有什么想法,我可以如何获得方法抛出一个指定的异常?

  • 我正在尝试通过Maven运行cucumber+testng+selenium。 当我在Eclipse中通过TestNG测试运行它时,它工作得很好,但当我使用mvn测试时,它会抛出空指针异常 我是不是漏掉了什么?