问题标签 [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.
c++ - 有没有办法使用 googletest 创建自定义参数生成器?
我实际上正在使用 googletest 框架。我有一个值参数化测试
这个 int 表示正多边形中的顶点数,double 表示它的半径。我可以使用这样的结构来表示这一点:
问题是我实际上使用组合参数生成器创建测试:
所以如果我想切换到使用
struct 作为我的参数,我必须对两个范围的笛卡尔积进行硬编码。
除非有一种方法可以定义我自己的 RegularPolygon Generator,它只会将 int 映射到 RegularPolygon::NbVertices 并将 double 映射到 RegularPolygon::Radius。
有没有办法这样做?
如果没有,将元组转换为 RegularPolygon 实例的最佳做法是什么?
java - 类级别的 JUnit5 参数化测试
是否可以使用 JUnit5 的参数化新特性来运行测试类来接收测试参数,而不是在方法级别进行?
使用 JUnit 4,可以使用诸如@RunWith(Parameterized::class)
plus 继承之类的运行器将参数数组传递给子类,但我不确定是否可以使用新的 JUnit 5 api 实现等效的东西。
java - 如何将列表作为 JUnit5 的参数化测试参数传递?
我想使用三个参数参数化我的 JUnit5 测试string
:string
和list<string>
。
到目前为止,使用时没有运气@CsvSource
,这是为我的用例传递参数的最方便的方法:
没有将 java.lang.String 类型的对象转换为 java.util.List 类型的隐式转换
实际测试是:
知道这是否可能吗?我在这里使用 Kotlin,但它应该是无关紧要的。
java - JUnit 5 和多输入数据 (Java)
如何使用 JUnit 5 运行一系列计算测试,每个测试针对不同的输入数据和基准输出?
条件:计算应该只对每个输入执行一次,而不是对每个测试单独执行,因为它是时间密集型的。
每个测试都会检查一个由已经不完美编写的计算模块输出的数字。将模块重组为可单独测试的子功能是不可行的。
java - @ParameterizedTest 在 IntelliJ IDEA 2017.3 中无法解析
我是 JUnit 测试的新手,我想在IntelliJ IDEA 2017.3.3中创建一个参数化测试。所以我添加了 JUnit 5:
然后 IntelliJ 下载了org.junit.jupiter:junit-jupiter-api:5.0.0
. 现在,@Test
正在工作,但@ParameterizedTest
不是。它说“无法解析符号'ParameterizedTest'”。与以下内容相同@ValueSource
:
代码:
PS:包裹org.junit.jupiter.params
也不见了。否则,IntelliJ 会自动导入它。
我希望任何人都可以帮助我如何解决这个问题。我没有使用 Maven、Gradle 等,只是使用 Java。
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 是否合适?请提供一些指导方针,以便使用推荐的框架。
java - 以更智能的方式在 Junit 5(或其他测试 Java 库)中使用数组参数化
我正在尝试参数化这个测试:
对我来说似乎很荒谬,它不存在一些快速的方法来初始化数组qsp
,例如ValueSource
:
我的目标是做类似的事情@ValueSource(doublesArray = {new double[]{1.0, 2.0, 3.0}})
(现在返回错误)。不存在任何允许类似的东西吗?
其他答案似乎只建议使用复杂的方法,例如使用@MethodSource
or @ConvertWith
。
我也接受实现其他测试库的答案。
java - 使用自定义测试运行器的参数化测试
我们正在使用我们的自定义测试运行器,它扩展了 ParentRunner:
受如何将 @RunWith 与 @RunWith(Parameterized.class) 结合使用的启发,我想OurTestRunner
与测试参数一起使用。所以我正在尝试实现工厂:
但是,OurTestRunner
它的父类ParentRunner
只接受Class<T>
as 参数,而不TestWithParameters
接受(即它不接受参数)。
有ParentRunner
兼容的版本Parameterized
吗?如果不是,那么扩展我们的设置(无需重写所有内容)的最简单方法是什么?
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]
java - 在 JUnit 5 中参数化类和测试
有没有办法同时参数化测试类(就像你可以在 JUnit 4 中使用Parameterized
and@Parameters
一样)和测试方法(就像你可以在 JUnit 4 中使用 JUnitParams 或@ParameterizedTest
在 JUnit 5 中使用一样)?最后我需要得到参数的笛卡尔积。
java.nio.ByteBuffer
使用所需方法的部分测试示例:
它产生:
我们正在考虑从 TestNG 迁移到 JUnit 5,但我们经常使用这种东西。在上面的例子中使用字节顺序作为类级参数并非巧合:我们经常需要对各种二进制数据处理器进行测试,其中测试构造函数将采用字节/位顺序参数,我们运行每个测试大端和小端。
我正在考虑为此创建一个扩展,然后使用ExtendWith
,但也许有一个现有的扩展或我错过的开箱即用的东西?