在python中编写一些单元测试,并使用MagicMock来模拟接受JSON字符串作为输入的方法。在我的单元测试中,我想断言它是用给定的参数调用的,但是我遇到了assert语句的问题,因为字典中对象的排序并不重要,除了字符串的assert语句之外。下面我试图实现的简化示例。在python中声明使用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"}'
是有效的转储但却一个会失败和一个将通过,我想写测试,以便通过。