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。看来你知道怎么做。请注意我应该使用哪些注释(我会研究它们)?