【问题标题】:How to pass specific test data to test class by using junit5 parameterized test?如何使用junit5参数化测试将特定的测试数据传递给测试类?
【发布时间】:2018-04-09 15:03:13
【问题描述】:

示例: 我正在使用参数化测试方法编写 Junit5 测试,我可以使用 csvFileSource 方法运行测试,问题是我的测试类文件包含几个测试 1. 使用正确的凭据登录 2. 使用不正确的凭据登录等等。

如果我在同一个 csv 文件中指定两组凭据(一组用于使用正确凭据登录,一组用于使用不正确凭据登录),则每个测试都会访问所有凭据并运行两次。如何从 csv 文件中为我的测试类中的每个子测试准确选择特定的测试数据?

【问题讨论】:

  • 您可以使用两个单独的文件,然后在@CsvFileSource(resources=...) 中选择您想要的一个,对吧?
  • @MarcPhilipp 我可以通过分离文件来做到这一点,但我不想为每个测试添加新文件,我想将所有测试数据添加到一个 csv 文件中。所以我被困在这里无法继续编写测试。
  • 您可以在 CSV 文件中添加一个或多个附加列来定义给定行的期望值,然后使用一个参数化测试方法来执行基于附加 期望值的断言> 列。
  • 是的,我之前尝试过,它正在工作,但我仍然需要从 csv 文件中获取所有参数才能运行测试,这会导致获取不需要的值。目前我计划为每个测试保留不同的 csv 文件,以解除对开发测试的阻碍。

标签: junit junit5


【解决方案1】:

您可以在 CSV 文件中添加其他字段,例如“标记”并根据该字段更改您的测试执行。例如在阳性测试中,您检查 Tag=positive。

【讨论】:

  • 是的,我已经尝试过了,但它不起作用,因为如果我尝试为不同的测试添加测试数据,每个测试都会从 csv 文件中获取数据并获取不正确的数据。目前,如果我为每个测试添加单独的 csv 文件,它正在工作。可能我现在需要坚持这个才能继续编写测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
  • 2019-01-23
  • 2018-02-21
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
相关资源
最近更新 更多