我有一个字典,其中包含可能的有效值的映射。如何使用此映射测试验证功能是否正常工作?我不知道如何@parameterize
在pytest中正确使用此选项。
我的第一次尝试是:
TEST_MAP = {
'key1': ['val1', 'val2', 'val3'],
'key2': ['val1', 'val2', 'val4', 'val5'],
'key3': ['val2', 'val4'],
'key4': ['val3', 'val4', 'val6'],
}
@pytest.mark.parametrize("map", TEST_MAP)
def test_map(self, map):
...
validate()
assert ...
这样做的问题是它仅在键上进行迭代。我还想遍历每个键的值。我需要测试键/值组合。
如何调整此测试用例的参数化,以测试映射中的调用键/值对?
我不想遍历测试中每个键的值。我希望每个键/值都是它自己的唯一测试。
根据注释进行了更新,以使用生成器来获取所需的组合:
def get_items():
TEST_MAP = {
'key1': ['val1', 'val2', 'val3'],
'key2': ['val1', 'val2', 'val4', 'val5'],
'key3': ['val2', 'val4'],
'key4': ['val3', 'val4', 'val6'],
}
for key, value in TEST_MAP.items():
for val in value:
yield key, val
@pytest.mark.parametrize("items", get_items())
def test_map(items):
key, value = items
print(key, value)
assert len(value) > 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句