我有一个班级负责情节的产生:
class PlotX:
def one(param1)
def two(param1)
...
,我想测试一下。我将所有测试方法归为一个TestPlotX类:
class TestPlotX:
data_for_test_one = (
(
# Input
# Test that method one does ...
pd.DataFrame()
# Expected
pd.DataFrame()
),
(.. more test data ..)
)
@pytest.mark.parametrize('test_input, expected', data_for_test_one)
def test_one(self, test_input, expected):
plot = PlotX()
actual = plot.one(test_input)
assert_frame_equal(actual, expected)
data_for_test_two = (
(
# Input
# Test that method two does ...
pd.DataFrame()
# Expected
pd.DataFrame()
),
(.. more test data ..)
)
@pytest.mark.parametrize('test_input, expected', data_for_test_two)
def test_two(self, test_input, expected):
plot = PlotX()
actual = plot.two(test_input)
assert_frame_equal(actual, expected)
我目前的设置有两个主要问题:
1)我觉得测试数据(data_for_test_one)并不真正属于那里。有更好的地方吗?
2)我正在用每种测试方法实例化该类,以便我有一个新对象,但是pytest难道没有更好的方法吗?
编辑:
我看到我可以使用这样的东西:
class TestPlotX:
def setup(self):
self.plot = PlotX()
但是我不知道每种测试方法是否都会有一个新的绘图实例。