Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spock 数据驱动的斯波克检验_Spock_Data Driven Tests - Fatal编程技术网

Spock 数据驱动的斯波克检验

Spock 数据驱动的斯波克检验,spock,data-driven-tests,Spock,Data Driven Tests,我正在做一些非常基本的斯波克复习练习,我正在尝试做一个数据驱动的测试。以下是规格: 套装演练 导入StringReverse 导入spock.lang.Specification 导入org.junit.Test 类TestSpockReverseString扩展了规范{ @试验 def“测试”(字符串指令、字符串预期字符串){ 鉴于: StringReverse systemUnderTest=新StringReverse(); 什么时候: 字符串actualString=systemUnde

我正在做一些非常基本的斯波克复习练习,我正在尝试做一个数据驱动的测试。以下是规格:

套装演练
导入StringReverse
导入spock.lang.Specification
导入org.junit.Test
类TestSpockReverseString扩展了规范{
@试验
def“测试”(字符串指令、字符串预期字符串){
鉴于:
StringReverse systemUnderTest=新StringReverse();
什么时候:
字符串actualString=systemUnderTest.reverseString(指令串);
然后:
expectedString.equals(实际字符串)
哪里:
inString |预期字符串
空|空
""          | ""
“abc”|“cba”
“aaa”|“aaa”
“abcd”|“dcba”
“asa”|“asa”
}
}
每次运行时都会出现以下错误:

我已经阅读了Spock文档并在线阅读了其他示例,看起来我正确地设置了规范。我正在运行EclipseIDEforEEJava。2020-03版(4.15.0)

我需要更新一些设置才能让Groovy和Spock正常工作

任何想法都将不胜感激

更新: 我尝试使用此处的一个规格:

也就是说这个:

def“a和b的最小值为c”(){
期望:
数学min(a,b)=c
哪里:
a | b | c
3 | 7 || 3
5 | 4 || 4
9 | 9 || 9
}
与上述问题相同。我认为我的Eclipse设置有问题。我已经看过groovy编译器、测试运行程序,不知道还有什么地方可以看。同样,如果您有任何想法,我们将不胜感激。
谢谢。

您想在Spock测试中去掉JUnit
@Test
注释,那么它可以使用或不使用feature方法参数。以下是您的规范的一个不太详细、更“夸张”的版本:

package de.scrum\u master.stackoverflow.q63959033
导入spock.lang.Specification
导入spock.lang.Unroll
类TestSpockReverseString扩展了规范{
@展开
定义“反转”#inString“产生”#expectedString'(){
期望:
expectedString==new StringReverse()。reverseString(inString)
哪里:
inString |预期字符串
空|空
""       | ""
“abc”|“cba”
“aaa”|“aaa”
“abcd”|“dcba”
“asa”|“asa”
}
静态类StringReverse{
字符串反转字符串(字符串字符串){
字符串?.reverse()
}
}
}

顺便说一句,
@Unroll
将是Spock2.0中的默认值,您只需要在1.x版本中使用它。

您是否尝试过将
def“test”(String inString,String expectedString){
更改为
def“test”(){
?是的,我已经尝试了这两种方法。当我在没有参数的情况下这样做时,它会在方法中的inString和expectedString下面加下划线,好像找不到它们,并且我得到了相同的初始化错误。一定要遵循Michal的建议,
def“test()
。我认为您遇到的新错误与另一个错误有关。也许您可以将其添加到问题?中。当我去掉测试注释时,eclipse告诉我找不到JUnits。我还可以使用测试注释和无where子句运行其他groovy规范。当我有where子句时,它会崩溃。如果您的eclipse实例没有配置where子句,则会崩溃适用于Spock测试(也可能适用于Groovy)你有一个Eclipse问题。我刚刚告诉过你如何修复你的Spock测试,因为它出了问题。我使用IntelliJ IDEA,所以我无法帮助你解决Eclipse问题,但我很快就为你搜索了。请不要忘记Groovy Eclipse。我还建议使用Maven或Gradle来构建你的项目,然后导入构建到Eclipse中,Maven/Gradle是领先的系统。当实际的Spock问题得到回答时,您是否愿意接受并投票?请随意创建一个关于Eclipse中Groovy和Spock支持的新问题,具体描述您的Eclipse配置和问题。谢谢。