给出如下测试文件...
(摘自https://docs.pytest.org/en/latest/fixture.html的示例)
test_with_fixture.py
import pytest
@pytest.fixture
def smtp_connection():
import smtplib
return smtplib.SMTP("smtp.gmail.com", 587, timeout=5)
我想这是一个过于简化的示例,但是以int方式声明smtp连接而不是...有什么好处?
test_without_fixture.py
import smtplib
smtp_connection = smtplib.SMTP("smtp.gmail.com", 587, timeout=5)
在我目前正在编写的测试中,我有很多静态值,例如
expected_result_of_calculation = 10
(等)
其中一些是更复杂的数据结构,包括字典和列表。
我应该将它们声明为fixture还是仅将它们放在测试文件的全局范围内?
我猜想当您想通过代码生成测试输入并让夹具返回值时,夹具更有用。这将封装该数据的生成。但是对于我的静态数据呢?他们需要吗?
答案 0 :(得分:0)
好处: