在为我的班级写一些测试时,我遇到了一个有趣的简单问题。我想断言有两本词典包含一些列表。但此列表的排序方式可能不同->;这将导致测试失败
示例:
def test_myobject_export_into_dictionary(self):
obj = MyObject()
resulting_dictionary = {
'state': 2347,
'neighbours': [1,2,3]
}
self.assertDictEqual(resulting_dictionary, obj.exportToDict())
根据列表中元素的顺序,此操作有时会失败
FAIL: test_myobject_export_into_dictionary
------------------------------------
- 'neighbours': [1,2,3],
+ 'neighbours': [1,3,2],
有什么办法可以用一种简单的方式来证明这一点吗?
我在考虑在比较之前使用set
而不是list
或排序列表。
你可以:
您可以尝试PyHamcrest(示例已更正)
(第一个值2347实际上包装在一个隐式
equal_to
匹配器中。)不如使用
all
:我在py.test中使用了类似的东西,但我认为它应该对您有用。
一位评论者指出,这个命令会把我搞得一团糟——很公平……那我就用套装吧。
相关问题 更多 >
编程相关推荐