Я пишу юнит-тест, используя 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 (), мойтест не пройден: Градель говорит: FAILED: java.lang.NullPointerException: Невозможно вызвать метод myMethod () для нулевого объекта
Вот как это выглядит с помощью 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()
}
}