【发布时间】:2015-06-22 02:14:52
【问题描述】:
我有以下 JUnit 测试:
public class JavaTest {
final int value = 2;
@Test
@Repeat(times = value)
public void test() {
fail("Not yet implemented");
}
}
@Repeat注解来自easytest-core,准确定义为here。
当我将它编译为 java 源代码时,一切构建(和运行)都很好。当我编译与 groovy 源代码完全相同的东西时,我得到:
Groovy:属性 'times' 应该具有类型 'java.lang.Integer';但在@org.easetech.easytest.annotation.Repeat GroovyTest.groovy 中找到了“java.lang.Object”类型
在网上搜索后,我在SO和jira.codehaus上发现了一些类似的讨论,但都是针对String-GString问题的,所以解决方案对我不起作用。
我该如何解决这个问题?
更新:
- java.version=1.7.0_76
- groovy.version=2.3.7
【问题讨论】:
-
你试过用
final Integer代替final int吗? -
@tim_yates 我现在有。 :p Groovy 报告了同样的问题。 Java 现在报告“类型不匹配:无法从 Integer 转换为 int”。
-
它在哪里报告?
final...或times=? -
@cfrick 错误出现在
@Repeat(times = value)行。 -
作为一个实验,您可以尝试将
@CompileStatic添加到课程中。
标签: groovy annotations junit4