java
system_error
ai_generated
true
中断异常:睡眠被中断
java.lang.InterruptedException: sleep interrupted
ID: java/mockito-verify-timeout-interrupted
80%修复率
81%置信度
0证据数
2024-11-05首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 8+ | active | — | — | — |
根因分析
带有超时的 verify 使用后台线程,该线程被中断,通常由于测试超时或线程问题。
English
verify with timeout uses a background thread that gets interrupted, often due to test timeout or thread issues.
解决方案
-
85% 成功率 Increase test timeout to accommodate verify timeout
@Timeout(10) @Test void asyncTest() { verify(mock, timeout(5000)).method(); } -
90% 成功率 Use awaitility library for async tests
await().atMost(5, SECONDS).untilAsserted(() -> { verify(mock).method(); });
无效尝试
常见但无效的做法:
-
Removing timeout from verify
60% 失败
May cause test to hang indefinitely.
-
Catching InterruptedException and ignoring
50% 失败
Hides real threading issues; test may pass incorrectly.