java
runtime_error
ai_generated
true
回答异常:回答抛出异常:java.lang.RuntimeException: test exception
org.mockito.exceptions.stubbing.AnswerException: Exception thrown by answer: java.lang.RuntimeException: test exception
ID: java/mockito-answer-throws-exception
80%修复率
84%置信度
0证据数
2024-08-25首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 8+ | active | — | — | — |
根因分析
自定义 Answer 实现 在测试调用期间抛出异常。
English
Custom Answer implementation throws an exception when invoked during test.
解决方案
-
90% 成功率 Fix Answer implementation to handle edge cases
Answer<String> answer = invocation -> { if (invocation.getArgument(0) == null) { return "default"; } return invocation.getArgument(0).toString(); }; -
85% 成功率 Use thenAnswer with lambda
when(mock.method(any())).thenAnswer(invocation -> { // safe logic return "result"; });
无效尝试
常见但无效的做法:
-
Catching exception in test and ignoring
60% 失败
Hides the real issue; test may pass incorrectly.
-
Using thenThrow instead of custom Answer
40% 失败
May not match the intended behavior if Answer has complex logic.