问题标签 [parameterized-unit-test]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1772 浏览

c++ - 有没有办法使用 googletest 创建自定义参数生成器?

我实际上正在使用 googletest 框架。我有一个值参数化测试

这个 int 表示正多边形中的顶点数,double 表示它的半径。我可以使用这样的结构来表示这一点:

问题是我实际上使用组合参数生成器创建测试:

所以如果我想切换到使用

struct 作为我的参数,我必须对两个范围的笛卡尔积进行硬编码。

除非有一种方法可以定义我自己的 RegularPolygon Generator,它只会将 int 映射到 RegularPolygon::NbVertices 并将 double 映射到 RegularPolygon::Radius。

有没有办法这样做?

如果没有,将元组转换为 RegularPolygon 实例的最佳做法是什么?

0 投票
1 回答
8778 浏览

java - 类级别的 JUnit5 参数化测试

是否可以使用 JUnit5 的参数化新特性来运行测试类来接收测试参数,而不是在方法级别进行?

使用 JUnit 4,可以使用诸如@RunWith(Parameterized::class)plus 继承之类的运行器将参数数组传递给子类,但我不确定是否可以使用新的 JUnit 5 api 实现等效的东西。

0 投票
2 回答
11213 浏览

java - 如何将列表作为 JUnit5 的参数化测试参数传递?

我想使用三个参数参数化我的 JUnit5 测试stringstringlist<string>

到目前为止,使用时没有运气@CsvSource,这是为我的用例传递参数的最方便的方法:

没有将 java.lang.String 类型的对象转换为 java.util.List 类型的隐式转换

实际测试是:

知道这是否可能吗?我在这里使用 Kotlin,但它应该是无关紧要的。

0 投票
1 回答
408 浏览

java - JUnit 5 和多输入数据 (Java)

如何使用 JUnit 5 运行一系列计算测试,每个测试针对不同的输入数据和基准输出?

条件:计算应该只对每个输入执行一次,而不是对每个测试单独执行,因为它是时间密集型的。

每个测试都会检查一个由已经不完美编写的计算模块输出的数字。将模块重组为可单独测试的子功能是不可行的。

0 投票
2 回答
4147 浏览

java - @ParameterizedTest 在 IntelliJ IDEA 2017.3 中无法解析

我是 JUnit 测试的新手,我想在IntelliJ IDEA 2017.3.3中创建一个参数化测试。所以我添加了 JUnit 5:

添加 JUnit 5

然后 IntelliJ 下载了org.junit.jupiter:junit-jupiter-api:5.0.0. 现在,@Test正在工作,但@ParameterizedTest不是。它说“无法解析符号'ParameterizedTest'”。与以下内容相同@ValueSource

无法解析符号“ParameterizedTest”

代码:

PS:包裹org.junit.jupiter.params也不见了。否则,IntelliJ 会自动导入它。

我希望任何人都可以帮助我如何解决这个问题。我没有使用 Maven、Gradle 等,只是使用 Java。

0 投票
3 回答
121 浏览

java - 使用不同的参数进行测试

我有以下场景要测试。我想知道哪种测试框架最适合我的要求。

场景一)Param1、Param2、Param3、Param4、Param5

我将使用参数编号1、2、3.. 传递上述参数,直到 20。

对于每个数字(1 到 20),将生成一个文件,该文件是测试输出数据。我需要将此输出数据与预期数据(也是一个文件)进行比较,如果两个文件(测试输出文件和预期数据文件)相同,则生成结果为真,否则为假。

测试的输入如下:Param1、Param2、Param3、Param4、Param5、Number、Expected Data File(将与测试输出进行比较)

场景2)param1,param2,param3,param4,param5

这里将给上述变量分配不同的值,然后将这些值再次传递给测试 20 次,每次都会生成不同的测试输出文件(总共 20 个输出文件),然后与预期的数据文件进行比较。(也有 20 个用于预期数据的文件。)

我有这样的15个场景。哪个测试框架最适合这里?参数化的 Junit 是否合适?请提供一些指导方针,以便使用推荐的框架。

0 投票
6 回答
6722 浏览

java - 以更智能的方式在 Junit 5(或其他测试 Java 库)中使用数组参数化

我正在尝试参数化这个测试:

对我来说似乎很荒谬,它不存在一些快速的方法来初始化数组qsp,例如ValueSource

我的目标是做类似的事情@ValueSource(doublesArray = {new double[]{1.0, 2.0, 3.0}})(现在返回错误)。不存在任何允许类似的东西吗? 其他答案似乎只建议使用复杂的方法,例如使用@MethodSourceor @ConvertWith

我也接受实现其他测试库的答案。

0 投票
1 回答
399 浏览

java - 使用自定义测试运行器的参数化测试

我们正在使用我们的自定义测试运行器,它扩展了 ParentRunner

如何将 @RunWith 与 @RunWith(Parameterized.class) 结合使用的启发,我想OurTestRunner与测试参数一起使用。所以我正在尝试实现工厂:

但是,OurTestRunner它的父类ParentRunner只接受Class<T>as 参数,而不TestWithParameters接受(即它不接受参数)。

ParentRunner兼容的版本Parameterized吗?如果不是,那么扩展我们的设置(无需重写所有内容)的最简单方法是什么?

0 投票
2 回答
481 浏览

python - How to pass testCase value to next one with Pytest

there are only 3 tests :Test_math.test_add[1],Test_math.test_add[2],Test_math.test_sub[3] executed in this scenario.

Test_math.test_sub only executes with predefined data [3] which is not my expectation [2,3,3]. How to fix it?

update [1,2,3]-> [2,3,3]

0 投票
1 回答
3502 浏览

java - 在 JUnit 5 中参数化类和测试

有没有办法同时参数化测试类(就像你可以在 JUnit 4 中使用Parameterizedand@Parameters一样)和测试方法(就像你可以在 JUnit 4 中使用 JUnitParams 或@ParameterizedTest在 JUnit 5 中使用一样)?最后我需要得到参数的笛卡尔积。

java.nio.ByteBuffer使用所需方法的部分测试示例:

它产生:

我们正在考虑从 TestNG 迁移到 JUnit 5,但我们经常使用这种东西。在上面的例子中使用字节顺序作为类级参数并非巧合:我们经常需要对各种二进制数据处理器进行测试,其中测试构造函数将采用字节/位顺序参数,我们运行每个测试大端和小端。

我正在考虑为此创建一个扩展,然后使用ExtendWith,但也许有一个现有的扩展或我错过的开箱即用的东西?