pytest - 2 个不匹配元素的列表。不确定要为不匹配的元素断言和生成 pytest 用例
问题描述
'''这是我正在做的应该在list1中但不在list2中的元素应该是['a']我到目前为止的代码'''
list1 = ['a', 'b', 'c']
list2 = ['b', 'c', 'd']
@pytest.mark.parametrize("list1", list1())
@pytest.mark.parametrize("list2", list2())
def test_validation(list1, list2):
mismatch=[]
for i in list1:
if i not in list2:
mismatch.append(i)
assert mismatch
'''我不确定在这里断言什么,以便 pytest 生成不匹配的测试用例。请感谢您的#help'''
解决方案
首先,不要调用列表,只需指定它。此外,您应该传递额外的参数,例如expected
, 以与实际结果进行比较。这应该是这样写的:
list1 = ['a', 'b', 'c']
list2 = ['b', 'c', 'd']
@pytest.mark.parametrize("list1, list2, expected", [list1, list2, ['a']])
def test_validation(list1, list2, expected):
mismatch = []
for i in list1:
if i not in list2:
mismatch.append(i)
assert mismatch == expected