gpt4 book ai didi

java - 尝试使用 mockito 抛出检查异常的问题

转载 作者:行者123 更新时间:2023-12-05 01:08:08 25 4
gpt4 key购买 nike

我有以下界面

public interface Interface1 {
Object Execute(String commandToExecute) throws Exception;
}

然后我试图模拟这样我可以测试将调用它的类的行为:
Interface1 interfaceMocked = mock(Interface1.class);
when(interfaceMocked.Execute(anyString())).thenThrow(new Exception());
Interface2 objectToTest = new ClassOfInterface2(interfaceMocked);
retrievePrintersMetaData.Retrieve();

但是编译器告诉我有一个未处理的异常。
Retrieve 方法的定义是:
public List<SomeClass> Retrieve() {
try {
interface1Object.Execute("");
}
catch (Exception exception) {
return new ArrayList<SomeClass>();
}
}

mockito 文档只显示了 RuntimeException 的使用,我在 StackOverflow 上没有看到类似的东西。
我使用的是 Java 1.7u25 和 mockito 1.9.5

最佳答案

假设您的测试方法没有声明它抛出 Exception ,编译器完全正确。这一行:

when(interfaceMocked.Execute(anyString())).thenThrow(new Exception());

... 电话 ExecuteInterface1 的实例上.那个可以扔 Exception ,因此您要么需要捕获它,要么声明您的方法抛出它。

我个人建议只声明测试方法抛出 Exception .没有其他人会关心那个声明,你真的不想捕获它。

关于java - 尝试使用 mockito 抛出检查异常的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506767/

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