2014-01-29 4 views
-2

Я использую Spock для тестирования класса Java.Тесты Groovy на Java class

Когда оба были в пакетах по умолчанию, я получил ошибку «Нет такого свойства» в IntelliJ IDEA, если я правильно помню, он отлично работал в Eclipse. Импорт Java-класса решает проблему.

Это работает:

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

Хотя это не делает, без статического импорта:

def result = MyClass.doStuff() 

Есть ли способ, чтобы исправить это без неявного импорта?

ответ

1

Не уверен, что вы имеете в виду - возможно, вы можете предоставить более подробную информацию. Я создал следующий образец Java-класса и очень короткий тест-тест и не имел проблем.

/** 
* 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); 
} 
} 

Вот тест Спока

/** 
* 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() 
    } 

} 
+0

Проверьте мой обновленный вопрос. Проблема связана с вызовами статических методов. Кроме того, я думаю, что он отлично работал в Eclipse, но теперь я в IntelliJ, и это дает мне ошибку «Нет такого свойства». –

Смежные вопросы