Unit testing 棒极了。具有动态名称的参数化测试

Unit testing 棒极了。具有动态名称的参数化测试,unit-testing,dynamic,groovy,junit,parameter-passing,Unit Testing,Dynamic,Groovy,Junit,Parameter Passing,我想实现groovy参数化测试,其中测试名称将使用参数值构建。我知道如何在java(我也找到了java的答案,但不是groovy) 因此,我需要使用相同的选项改进我的groovy参数化单元测试: import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.Parameterized @RunWith(Parameterized) class TestSimple { String num

我想实现
groovy
参数化测试,其中测试名称将使用参数值构建。我知道如何在
java
(我也找到了java的答案,但不是
groovy

因此,我需要使用相同的选项改进我的
groovy
参数化单元测试:

import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized

@RunWith(Parameterized)
class TestSimple {

    String numberA
    String numberB
    String expectedResult

    TestSimple(numA, numB, expected) {
        numberA = numA
        numberB = numB
        expectedResult = expected
    }

    @Parameterized.Parameters
    static data1() {
        [
                [null, "asd|asd|||ASD||ASD", 'result for first case'],
                ['09909', "asd|asd|||ASD||ASD", 'result for second case']

        ]*.toArray()
    }

    @Test
    void testLogonRequest1() throws Exception {
        println numberA + ":" + numberB
    }
}
用参数值替换顺序号的步骤

TestSimple
  [0]
    testLogonRequest1[0]
  [1]
    testLogonRequest1[1]
预期结果类似于:

TestSimple
  [used parameters: <numberA0value>, <numberB0value>]
    testLogonRequest1[expected result: <expectedResult0Value>]
  [used parameters: <numberA1value>, <numberB1value>]
    testLogonRequest1[expected result: <expectedResult1Value>]
TestSimple
[使用的参数:,]
testLogonRequest1[预期结果:]
[使用的参数:,]
testLogonRequest1[预期结果:]

有什么想法吗?

我不认为仅仅使用
org.junit.runners.Parameterized
[]
中的消息必须是相同的,也许你可以编写SuiteClass来实现这个效果。你有什么例外吗?顺便问一下,为什么你没有指定
data1()
函数返回类型?尝试为类设置
@groovy.transform.CompileStatic
注释,并修复所有编译错误。@此处没有异常。由于我是groovy的新手,所以我没有指定类型等等,而是按原样做了。如果我知道如何做得更好,我就会去做。返回类型对我的问题重要吗?@Aristtl。看来你知道怎么做。请注意我应该使用哪些注释(我会研究它们)?我不认为仅仅使用
org.junit.runners.Parameterized
,在
[]
中的消息必须是相同的,也许你可以编写SuiteClass来达到这个效果。你有什么例外吗?顺便问一下,为什么你没有指定
data1()
函数返回类型?尝试为类设置
@groovy.transform.CompileStatic
注释,并修复所有编译错误。@此处没有异常。由于我是groovy的新手,所以我没有指定类型等等,而是按原样做了。如果我知道如何做得更好,我就会去做。返回类型对我的问题重要吗?@Aristtl。看来你知道怎么做。请注意我应该使用哪些注释(我会研究它们)?