Groovy测试Java类

时间:2014-01-29 19:32:45

标签: groovy spock

我正在使用Spock来测试Java类。

当两者都在“默认”包中时,我在IntelliJ IDEA中得到“No such property”错误,如果我没记错,它在Eclipse中运行良好。 导入Java类解决了这个问题。

这有效:

def var = new MyClass()
def result = var.doStuff()

虽然没有,但没有静态导入:

def result = MyClass.doStuff()

有没有办法在没有隐式导入的情况下解决这个问题?

1 个答案:

答案 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()
   }

}