我需要测试一个函数,它将在django
中返回一个带有rest_framework.test.APITestCase's assertEqual
的dict。格言是这样的:
{
"first_name": "John",
"last_name": "Doe",
"random": some random number
}
除了random
键外,我如何用合适的结果检查返回的dict
我的意思是assertEqual(a, result)
应该返回True
如果这两个dict被通过:
a = {
"first_name": "John",
"last_name": "Doe",
"random": 12
}
result = {
"first_name": "John",
"last_name": "Doe",
"random": 24
}
在assertEqual
中是否存在这样的异常,或者我必须使用assert
更新:
感谢大家,我得到了很好的解决方案,但如果我得到一个包含这些格言的列表,比如:
assertEqual(list_of_dicts, expected_result_list)
我的意思是在这两个列表中:
list1 = [
d1,
d2,
d3
]
list2 = [
d1,
d2,
d3
]
在不考虑每个dict中的random
键的情况下,应该是相等的
我必须循环浏览列表并逐个比较dicts,还是有一个最快的解决方案
您可以创建字典的副本并从中弹出随机数
如果不想保留原始版本,请直接在现有词典上使用
pop()
如果您有两个dict列表,您可以使用
zip
对这两个dict进行迭代并比较每一对您可以复制和修改其中一个DICT以更正差异,而不是同时复制和修改两个副本:
相关问题 更多 >
编程相关推荐