Pytest:将参数化的灯具与预期结果相关联

时间:2016-06-09 19:00:22

标签: python unit-testing pytest fixtures

说我有以下测试:

'b'

这很有效。现在说我想添加@pytest.mark.parametrize('ascii_val', [97, 98])作为参数。理想情况下,我可以使用ascii_val之类的东西来装饰测试,将ascii == ascii_val添加为测试的agrument并断言'a'。然而,Pytest也会对98和'b'提出'a' 97。

我有什么方法可以将'b'与97和test_ascii与98联系起来?我问,因为我会进行很多测试,例如{{1}},我会检查一些输入在给定不同分析技术的情况下始终输出相同的输出。

1 个答案:

答案 0 :(得分:1)

至少对于您给出的简单示例,为什么要使用参数化夹具而不是参数化测试?

这样的事情应该有效:

@pytest.mark.parametrize('char, expected', [('a', 97), ('b', 98)])
def test_ascii(char, expected):
    assert ord(char) == expected

如果你真的想使用一个灯具,你总是可以从它返回一个(char, expected)元组并使用它。