我正在尝试为我的 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/