蓋布Groovy和斯波克大師,請你告訴我爲什麼下面的代碼不爲我工作(變量「closr」給出了一個空值)擴展斯波克規範給出錯誤代碼
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」已關閉返回)。?在第二個唯一的區別是,我刪除擴展斯波克規範
我們有猜測你的第一個版本出現錯誤? –
我在第一個closr上得到null。編輯問題。 – QVSJ
爲什麼要擴展規範,然後將其作爲普通腳本調用(而不是使用任何Spock)? –