pytest.raises 中的多个断言

dar*_*nce 0 python pytest

我正在尝试测试代码,我想在一个带有 pytest.raises(ValueError) 异常的单个规则中测试多个规则,是否有 Pythonic 方法可以做到这一点?在下面的示例中,我想测试所有 4 个函数调用是否都会抛出值错误。

With pytest.raises(ValueError):
  function_that_throws_exception(param1)
  function_that_throws_exception(param2)
  function_that_throws_exception(param3)
  function_that_throws_exception(param4)
Run Code Online (Sandbox Code Playgroud)

Ron*_*nez 5

我建议使用parametrize

@pytest.mark.parametrize("param", [param1, param2...])
def test_function_that_throws_exception(param):
    with pytest.raises(ValueError):
       function_that_throws_exception(param)
Run Code Online (Sandbox Code Playgroud)