我将使用什么断言来验证字典列表是否包含特定值
What assertion would I use for validating a list of dictionaries contains a specific value
我是单元测试的新手,仍然了解它是如何工作的。如果我有字典列表...例如:
mylist = [{"y": "xval", "v": "x1val"},
{"y": "yval", "v": "y1val"},
{"y": "zval", "v": "z1val"}]
当 "y" = "yval" 时,我会执行哪种 assertion/test 来验证 "v" 的值是 "y1val"?也可能是列表中不存在字典y:yval
没有可以直接测试它的单元测试断言,但您可以使用循环。
# This is inside a TestCase method
for d in mylist:
if d['y'] == 'yval':
self.assertEqual(d['v'], 'y1val')
这可以概括为将每个 'y'
条目与允许的 'v'
条目相关联。
expected= {
'xval': 'x1val',
'yval': 'y1val',
'zval': 'z1val'
}
# This is in a TestCase method
for d in mylist:
self.assertEqual(d['v'], expected[d['y']])
您可以尝试一些架构验证模块来验证您的结构:
>>>from voluptuous import Schema
>>>Schema([{'y':str, 'v':str}])
>>> s([{"y": "xval", "v": "x1val"},
{"y": "yval", "v": "y1val"},
{"y": "zval", "v": "z1val"}])
[{'y': 'xval', 'v': 'x1val'}, {'y': 'yval', 'v': 'y1val'}, {'y': 'zval', 'v': 'z1val'}]
要安装此模块,您可以使用:pip install voluptuous
我是单元测试的新手,仍然了解它是如何工作的。如果我有字典列表...例如:
mylist = [{"y": "xval", "v": "x1val"},
{"y": "yval", "v": "y1val"},
{"y": "zval", "v": "z1val"}]
当 "y" = "yval" 时,我会执行哪种 assertion/test 来验证 "v" 的值是 "y1val"?也可能是列表中不存在字典y:yval
没有可以直接测试它的单元测试断言,但您可以使用循环。
# This is inside a TestCase method
for d in mylist:
if d['y'] == 'yval':
self.assertEqual(d['v'], 'y1val')
这可以概括为将每个 'y'
条目与允许的 'v'
条目相关联。
expected= {
'xval': 'x1val',
'yval': 'y1val',
'zval': 'z1val'
}
# This is in a TestCase method
for d in mylist:
self.assertEqual(d['v'], expected[d['y']])
您可以尝试一些架构验证模块来验证您的结构:
>>>from voluptuous import Schema
>>>Schema([{'y':str, 'v':str}])
>>> s([{"y": "xval", "v": "x1val"},
{"y": "yval", "v": "y1val"},
{"y": "zval", "v": "z1val"}])
[{'y': 'xval', 'v': 'x1val'}, {'y': 'yval', 'v': 'y1val'}, {'y': 'zval', 'v': 'z1val'}]
要安装此模块,您可以使用:pip install voluptuous