在 python 中编写一些单元测试并使用 MagicMock 模拟一个接受 JSON 字符串作为输入的方法。在我的单元测试中,我想断言它是用给定的参数调用的,但是我遇到了断言语句的问题,因为除了在字符串的断言语句中之外,字典中对象的顺序无关紧要。我在下面尝试实现的简化示例。
mock_funct = MagicMock()
# mocked function called elsewhere
expected = {"a":"a", "b":"b"}
mock_funct.assert_called_once_with(json.dumps(expected))
由于字典中的键在转储到 json 时的任意顺序,上述可能通过或可能失败,即两者'{"a":"a", "b":"b"}'
都是'{"b":"b", "a":"a"}'
有效的转储,但一个会失败,一个会通过,但是我想编写测试以便要么会通过。