python data_error ai_generated true

AssertionError: Expected mock_calls to have been called in order. Actual calls: [call(1), call(2)]

ID: python/unittest-mock-call-order

Also available as: JSON · Markdown · 中文
80%Fix Rate
83%Confidence
0Evidence
2025-01-10First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.9 active

Root Cause

测试中检查了mock的调用顺序,但实际调用顺序与期望不符。

generic

中文

mock调用顺序与预期不一致,导致断言失败。

Workarounds

  1. 90% success
    mock.assert_has_calls([call(1), call(2)], any_order=False)
  2. 85% success
    calls = []
    def side_effect(x):
        calls.append(x)
        return x
    mock.side_effect = side_effect
    assert calls == [1, 2]

Dead Ends

Common approaches that don't work:

  1. 60% fail

    可能掩盖并发或逻辑错误。

  2. 70% fail

    不检查顺序,无法满足测试意图。