Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
使用ant构建的Spock单元测试_Ant_Junit_Spock - Fatal编程技术网

使用ant构建的Spock单元测试

使用ant构建的Spock单元测试,ant,junit,spock,Ant,Junit,Spock,我正在和斯波克写一个单元测试。我想使用spock检查数组的所有元素 when: then: 街区。我从接受的答案中找到了语法。基于此,我写了这样的东西- then: myArray.every { (it >= 0) && (it < 10) } 在查看ant构建创建的类文件时,我看到 public void $spock_feature_0_0(Object obj){ ... ... class __spock_feature_0_0_closure1

我正在和斯波克写一个单元测试。我想使用spock检查数组的所有元素

when: then:
街区。我从接受的答案中找到了语法。基于此,我写了这样的东西-

then:    
myArray.every { (it >= 0) && (it < 10) }
在查看ant构建创建的类文件时,我看到

public void $spock_feature_0_0(Object obj){
...
...
class __spock_feature_0_0_closure1 extends Closure implements GeneratedClosure {
}
...
...
new __spock_feature_0_0_closure1()
}
因此,似乎无法使用反射访问闭包!!有什么想法吗? 是我的ant groovy配置搞砸了(正如我前面所说的,更简单的测试对我有用,所以我希望不会!),还是我对Spock的期望太高了

这个场景的一个例子-

下面的junit也无法运行,并出现相同的错误-


更新(2月29日-16日)-根据目前的讨论,问题似乎出在Ant身上。只有使用/编译到本地类的junit和groovy/Spock测试给出了错误。较简单的案例效果良好

你能公布你的整个斯波克测试吗?它是否扩展了规范?嗨kazanaki,我添加了一个示例供您参考。您的测试在Spock web控制台中运行良好。所以我认为您的设置是错误的(考虑到它在Intellij中也可以工作),谢谢您的检查。我知道设置有问题。“.every”语句编译成字节码的本地类。我看了一下,写了一个junit测试,结果也失败了,真让我吃惊!!所以我想我可以把范围缩小到蚂蚁。但不确定具体是什么。(使用junit测试更新了主要注释,ant环境信息)。想法?你能把你的整个斯波克测试都贴出来吗?它是否扩展了规范?嗨kazanaki,我添加了一个示例供您参考。您的测试在Spock web控制台中运行良好。所以我认为您的设置是错误的(考虑到它在Intellij中也可以工作),谢谢您的检查。我知道设置有问题。“.every”语句编译成字节码的本地类。我看了一下,写了一个junit测试,结果也失败了,真让我吃惊!!所以我想我可以把范围缩小到蚂蚁。但不确定具体是什么。(使用junit测试更新了主要注释,ant环境信息)。思想?
public void $spock_feature_0_0(Object obj){
...
...
class __spock_feature_0_0_closure1 extends Closure implements GeneratedClosure {
}
...
...
new __spock_feature_0_0_closure1()
}
public class SpockTest extends Specification{

public def "example"(){
    given:
    int[] arr = new int[5];
    when:
    arr[0] = 1;

    then:
    arr.every { (it >= 0) }
}
}
public class TestClass {
 public int test1() {
   class testInner {//local class
     int a = 100;
     public int getA() {
       return a;
     }
   }
 return new testInner().getA();
 }
 @Test
 public void test2() {
   System.out.println(test1());
   assert 100 == test1();
 }
}