Spock for 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()
}
}