gpt4 book ai didi

java - 如何验证是否捕获到异常

转载 作者:行者123 更新时间:2023-11-29 04:42:52 25 4
gpt4 key购买 nike

如何使用 Mockito 测试是否捕获到异常?

示例:

try{
int a = 8/0;
catch(ArithmeticException e){
Logger.error(e.getMessage());
}

最佳答案

我猜你的问题是 Logger.error() 实际上是对静态方法的调用。而“正常”的 Mokito 不允许您模拟对静态方法的调用。

因此,有两种选择:

a) 您可以求助于 PowerMokito ...,它使您能够模拟此类调用;因此你可以简单地指定:“我希望 Logger.error() 应该用这种异常对象来调用”。但请注意:PowerMockito 及其兄弟 PowerMock 需要付出一定的代价;对于许多人来说,他们制造的问题多于他们解决的问题。因此,就我个人而言,我绝对不推荐此选项。

b) 你可以退后一步,将你的设计更改为不使用静态方法,例如:

class UnderTest {
SomeLogger logger ... coming into the class via dependency injection

void foo() {
try { ... whatever
} catch(WhateverException w) {
logger.error(w....

所以,现在您正在处理一个方法调用;你可以创建一个模拟并传递它。

当然,这只有在您拥有日志记录代码时才有效。当然,这可能需要大量工作。但从长远来看,它会得到返回。

最后的建议:你可能想看那些 videos ,详细解释了“编写可测试代码”的实际含义。

关于java - 如何验证是否捕获到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482330/

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