Какую структуру должен иметь TestClass в pytest? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть класс, отвечающий за генерацию сюжета:

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

, но я не знаю, будет линовый экземпляр графика для каждого метода испытаний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...