python - 列表理解中的测试和断言

标签 python unit-testing testing tdd automated-tests

我是 python 测试新手,想使用 pytest如果可能的话,检查我的功能是否正确。有一个输入和预期输出列表:

    test_cases = [
        ("...Guide: From Mid $1.3ms", [(1300000)]),
        ("OFFERS OVER $1,100,000", [(1100000)]),
        ("...Around $1.35million", [(1350000)]),
        ("Guide above $1.2m", [(1200000)]),
        ("...From $2.55 Million", [(2550000)]),
        ("Low $2 millions", [(2000000)]),
        ("Mid $2M's Buyers", [(2000000)]),
        ("$305,000 - $349,950", [(305000), (349950)]),
        ("...$485,000 and $510,000", [(485000), (510000)]),
        ("...High $300,000's", [(300000)]),
        ("...000 + to $625,000 +", [(625000)]),
        ("$299k", [(299000)]),
        ("... Buyers Guide $1.29M+", [(1290000)]),
        ("$1m", [(1000000)]),
        ("$1,000,000.00", [(1000000)])
        ]

如果 test_cases[n][0] 作为输入,测试我的函数返回 test_cases[n][1] 的最优雅的方法是什么?我能否以某种方式断言这一点,同时仍然获得有意义的结果(即 10 次测试中有 7 次成功完成,10 次测试中有 10 次成功完成)?

最佳答案

The parametrize decorator做这个。你给它一个输入列表,它会为输入列表的每个元素运行一次装饰测试。每一个都将被报告为一个单独的测试。

import pytest

test_cases = [
    ("...Guide: From Mid $1.3ms", [(1300000)]),
    ("OFFERS OVER $1,100,000", [(1100000)]),
    ("...Around $1.35million", [(1350000)]),
    ("Guide above $1.2m", [(1200000)]),
    ("...From $2.55 Million", [(2550000)]),
    ("Low $2 millions", [(2000000)]),
    ("Mid $2M's Buyers", [(2000000)]),
    ("$305,000 - $349,950", [(305000), (349950)]),
    ("...$485,000 and $510,000", [(485000), (510000)]),
    ("...High $300,000's", [(300000)]),
    ("...000 + to $625,000 +", [(625000)]),
    ("$299k", [(299000)]),
    ("... Buyers Guide $1.29M+", [(1290000)]),
    ("$1m", [(1000000)]),
    ("$1,000,000.00", [(1000000)])
]

@pytest.mark.parametrize("in, out", test_cases)
def test(in, out):
    assert f(in) == out

关于python - 列表理解中的测试和断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35429478/

相关文章:

python - 您如何使用经过训练的神经网络来识别图像中的多个对象?

unit-testing - 用 Jest 模拟 ApolloClient 的 client.query 方法

c# - 使用哪种测试方法?

python - 如何在 Django 中测试文件响应?

java - junit 和 psvm 有什么区别

python - 如何使用默认属性描述符并从 __init__() 成功分配?

python - 如何将字典组合成嵌套字典?

javascript - 如何测试登录到控制台的方法?

testing - 为什么 Mocha 不报告每次测试的时间?

python - 将 Dataframe 转换为数据透视表,将值分组到列表中