【发布时间】:2020-06-10 23:26:13
【问题描述】:
什么时候适合使用 Pytest 固定装置而不是实例变量?
假设我有一个大型的预期 JSON 输出存储在本地,多个测试使用该输出。以下哪种方法更合适?我可以看到对象的状态在测试之间保持不变。
@pytest.fixture
def expected_output():
return <fixture>
def test_1(expected_output):
<do something>
assert output == expected_output
def test_2(expected_output):
<do something>
assert output == expected_output
class SomeTestClass(TestCase):
def setUp(self):
self.expected_output = <fixture>
def test_1(self):
<do something>
self.assertEqual(output, self.expected_output)
def test_2(self):
<do something>
self.assertEqual(output, self.expected_output)
我已经梳理了 Pytest 文档,但似乎不明白其中的区别。拥有实例变量似乎带来了固定装置的许多好处——即跨测试共享值。
【问题讨论】:
标签: python unit-testing testing pytest fixtures