首页 > 解决方案 > 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'''

标签: pytest

解决方案


首先,不要调用列表,只需指定它。此外,您应该传递额外的参数,例如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

推荐阅读