Я пишу модульный тест, используя Spock для groovy-2.0, и использую gradle для запуска. Если я напишу следующее, тест пройдет.
import spock.lang.Specification
class MyTest extends Specification {
def "test if myMethod returns true"() {
expect:
Result == true;
where:
Result = new DSLValidator().myMethod()
}
}
myMethod() - это простой метод в классе DSLValidator, который просто возвращает true.
Но если я пишу функцию setup() и создаю объект в setup(), мой тест не проходит: Gradel говорит: FAILED: java.lang.NullPointerException: Cannot invoke method myMethod() on null object
Вот как это выглядит с setup(),
import spock.lang.Specification
class MyTest extends Specification {
def obj
def setup(){
obj = new DSLValidator()
}
def "test if myMethod returns true"() {
expect:
Result == true;
where:
Result = obj.myMethod()
}
}
Может кто-нибудь помочь?
Вот решение, которое я получил для этой проблемы:
import spock.lang.Specification
class DSLValidatorTest extends Specification {
def validator
def setup() {
validator = new DSLValidator()
}
def "test if DSL is valid"() {
expect:
true == validator.isValid()
}
}