python
data_error
ai_generated
true
断言错误:期望mock调用顺序为[call(1), call(2)],实际为[call(2), call(1)]
AssertionError: Expected mock_calls to have been called in order. Actual calls: [call(1), call(2)]
ID: python/unittest-mock-call-order
80%修复率
83%置信度
0证据数
2025-01-10首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| 3.9 | active | — | — | — |
根因分析
mock调用顺序与预期不一致,导致断言失败。
English
测试中检查了mock的调用顺序,但实际调用顺序与期望不符。
解决方案
-
90% 成功率
mock.assert_has_calls([call(1), call(2)], any_order=False)
-
85% 成功率
calls = [] def side_effect(x): calls.append(x) return x mock.side_effect = side_effect assert calls == [1, 2]
无效尝试
常见但无效的做法:
-
60% 失败
可能掩盖并发或逻辑错误。
-
70% 失败
不检查顺序,无法满足测试意图。