pytest-assert-in-except (PT017)
源自 flake8-pytest-style linter。
作用
检查 except
子句中的 assert
语句。
为什么这不好?
当测试异常时,应该使用 pytest.raises()
代替 except
子句中的 assert
语句,因为它更明确且更符合习惯。此外,如果 没有 引发异常,pytest.raises()
将会失败,这与 assert
语句不同。
示例
建议改为
import pytest
def test_foo():
with pytest.raises(ZeroDivisionError) as exc_info:
1 / 0
assert exc_info.value.args