1

我将 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舞台。这行不通。

同时我认为,这不是正确的方法,但我找不到另一种解决方案。有什么提示可以使这项工作吗?谢谢

4

0 回答 0