我正在使用Spock来测试Java类。
当两者都在“默认”包中时,我在IntelliJ IDEA中得到“No such property”错误,如果我没记错,它在Eclipse中运行良好。 导入Java类解决了这个问题。
这有效:
def var = new MyClass()
def result = var.doStuff()
虽然没有,但没有静态导入:
def result = MyClass.doStuff()
有没有办法在没有隐式导入的情况下解决这个问题?
答案 0 :(得分:1)
不确定您的意思 - 也许您可以提供更多详细信息。我创建了以下示例java类和一个非常短的spock测试,没有任何问题。
/**
* Created by mike on 1/29/14.
*/
public class SampleJava {
private int count;
private String text;
public SampleJava(int cnt, String input) {
count = cnt;
text = input;
}
@Override
public String toString() {
return "SampleJava{" +
"count=" + count +
", text='" + text + '\'' +
'}';
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public static void doStuff() {
System.out.println("doStuff...");
}
public static void main(String[] args) {
SampleJava sj = new SampleJava(5, "Hello");
System.out.println(sj);
}
}
这是spock测试
/**
* Created by mike on 1/29/14.
*/
import spock.lang.Specification
class TestSampleJava extends Specification {
SampleJava sampleJava
def "test constructor"() {
sampleJava = new SampleJava(5, "Hello")
expect:
sampleJava.count == 5
sampleJava.text == 'Hello'
SampleJava.doStuff()
}
}