java - 使用 Unit 方法捕获多个异常

标签 java eclipse junit junit5

我正在尝试为我的 suchAutor() 方法编写一个 JUnit。 问题是我抛出了两个不同的异常,而我只知道如何处理抛出一个异常的测试。

public Buch[] suchAutor(String gesuchterName) throws IllegalArgumentException, FileNotFoundException {
    if (gesuchterName == "") {
        throw new IllegalArgumentException("Bitte geben sie einen Nachnamen ein.");
    }
    Buch[] erg = new Buch[0];
    int arraylength = 0;
    Boolean found = false;
    for (int i = 0; i < buecher.length; i++) {
        for (int u = 0; u < buecher[i].getAutoren().length; u++) {
            if (buecher[i].getAutoren()[u].getNachname() == gesuchterName) {
                found = true;
                arraylength++;
                erg = Arrays.copyOf(erg, arraylength);
                erg[arraylength - 1] = buecher[i];
            }
        }
    }
    if (found) {
        System.out.println(Arrays.toString(erg));
        return erg;
    } else {
        throw new FileNotFoundException("Zu dem gesuchten Autor wurden keine Bücher gefunden.");
    }
}

@Test(expected = Exception.class)
public void testSuchAutorGrenzwert() {
    try {
        bibliothek.suchAutor("");
    } catch (IllegalArgumentException e) {

    } catch (FileNotFoundException e) {
        System.out.println(e.getMessage());
    }
}

最佳答案

题目打了junit5的tag,Jupiter专门奉献了assertThrows设施:

 @Test
 void failsOnEmptyName(){
     assertThrows(IllegalArgumentException.class, ()-> bibliothek.suchAutor(""));
 }   

关于java - 使用 Unit 方法捕获多个异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55724916/

相关文章:

java - 如何在请求工作空间之前修复 Eclipse Luna 挂起/卡在启动屏幕上的问题?

Eclipse 中的 Android 最小 SDK 版本

java - 将 JUnit 从 4.8.2 更新到 4.9 ExpectedException.apply 问题

java - H2 DB 与 datetime2

java - 在 Spark、Java 中合并元组两个值的数据

Java线程导致死锁

java - 为什么 java 8 中的比较仍然使用 int 而不是 Enum?

java - 将bat文件放入jar文件中

java - 如何在 Selenium (Java) 中的 "NoSuchElementException"之后继续执行?

java - 如何对 void 方法进行 Junit 测试