pytest中的TestClass应该具有什么结构?

时间:2019-02-05 11:34:29

标签: python pytest

我有一个班级负责情节的产生:

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()

但是我不知道每种测试方法是否都会有一个新的绘图实例。

0 个答案:

没有答案