gpt4 book ai didi

java - JUnit测试: How to test for nested Exeption?

转载 作者:行者123 更新时间:2023-11-30 05:24:25 26 4
gpt4 key购买 nike

我想编写 JUnit Test 来测试以下代码片段。使用 Mockito,我能够模拟并测试第一个异常。如果我不想更改实现,是否可以使用 Mockito 或任何相关库来测试嵌套异常?

以下是我想为其编写单元测试的代码:

...
else {
response.sendRedirect("path to error URL");
}
} catch (Exception ex) {
logger.error(ex.getMessage());
try {
response.sendRedirect("path to error URL");
}catch(IOException e) { <= Unable to test for the following Exception
logger.error(ex.getMessage());
}
}

我在网上查找了各种解决方案,例如编写两个mockito when语句,但没有成功。如果您以前遇到过以下问题,我将不胜感激任何形式的帮助或知识分享。谢谢!

最佳答案

您可以 stub consecutive calls 的不同响应

doThrow(new RuntimeException()).doThrow(new EOFException()).when(mock).sendRedirect("some url"); // for first and inner catch block

如果您有两个不同的URL,您可以拥有单独的 stub

doThrow(new RuntimeException()).when(mock).sendRedirect("first url") // for first catch block
doThrow(new EOFException()).when(mock).sendRedirect("second url") // for inner catch block

关于java - JUnit测试: How to test for nested Exeption?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com