Как написать параметризованный сценарий JGiven (JUnit5) с несколькими источниками? - PullRequest
1 голос
/ 24 февраля 2020

Я использую JGiven с JUnit 5 и должен реализовать параметризованный тест, используя два CSV-файла в качестве источников. Первый файл CSV содержит фактический ввод, второй содержит ожидаемый вывод.

Используя документы, я получил что-то вроде этого:

@ExtendWith(JGivenExtension.class)
public class TestCase extends ScenarioTest<TGiven, TWhen, TThen> {

  @ParameterizedTest
  @ArgumentsSource(MyArgumentsProvider.class)
  public void test_something(MyObject obj) {
    given().the_input_from_file("input.csv");
    when().doing_some_stuff_with_data_from_input_file();
    then().the_result_should_match(obj);
  }
}

MyArgumentsProvider загружает второй CSV файл и анализирует объекты из него (MyObject).

Теперь проблема в том, что для каждого аргумента obj загружается / анализируется input.csv. Чтобы избежать этого, я помещаю разбор input.csv в метод @BeforeAll и передаю необходимые объекты, сгенерированные из него, на стадию TGiven через given().the_input_data(parsedListOfInputData).

Но теперь мне нужно предоставить это объекты на сцену TWhen. Это не работает.

Между тем, я думаю, что это неправильный подход, но я не могу найти другое решение. Любые намеки, чтобы сделать эту работу? Thx

...