1

Geb Groovy と spock 達人、次のコードが機能しない理由を教えてください (変数 'c​​losr' が null 値を与える)。

import geb.Browser
import spock.lang.Specification

class somclass extends Specification{
def clos = {
    go()

    }
def Browser driveit(Browser browser, Closure script) {
    script.setDelegate(browser)
    script()
    browser
    }
}

objnew = new somclass()
def closr =  objnew.clos
objnew.driveit(new Browser(),closr)

その間

import geb.Browser

class somclass {
def clos = {
    go()

    }
def Browser driveit(Browser browser, Closure script) {
    script.setDelegate(browser)
    script()
    browser
    }
}

objnew = new somclass()
def closr =  objnew.clos
objnew.driveit(new Browser(),closr)

これは私にとってはうまくいきます(変数「closr」にはクロージャーが返されます)。2本目との違いは延長スポック仕様を外しただけ

4

1 に答える 1

1

このコードで何を達成しようとしているのかはわかりませんが、Spock をこの方法で使用することはできません。Spock 仕様は JUnit を介して実行する必要があり、特定のルールに準拠する必要があります (たとえば、テスト メソッドにはsetup:やのようなブロックがありますexpect:)。

于 2013-02-01T12:58:18.183 に答える