【发布时间】:2020-01-26 09:24:55
【问题描述】:
我需要测试一个函数,它将在django 中返回一个带有rest_framework.test.APITestCase's assertEqual 的字典。字典是这样的:
{
"first_name": "John",
"last_name": "Doe",
"random": some random number
}
除了random 键之外,我如何检查返回的dict 与我的合适结果?
我的意思是 assertEqual(a, result) 应该返回 True 如果这两个字典被传递:
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
]
应该相等而不考虑每个字典中的random键
我是否必须遍历列表并逐一比较字典,还是有最快的解决方案?
【问题讨论】:
-
您想比较列表中的所有字典吗?即应该
[d1, d2, d3]检查d1 == d2、d1 == d3和d2 == d3? -
@DeepSpace 仅编号
d1 == d1,d2 ==d2, ... -
我不确定我是否遵循...为什么
d1不等于d1?是同一个字典 -
@DeepSpace 也许我没有澄清自己。我的意思是来自
list1的d1应该等于来自list 2的d1。我将编辑我的问题
标签: python django testing assert