Geb Groovy和spock gurus,请你帮我理解为什么以下代码对我不起作用(变量'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'有闭包返回)。第二个唯一的区别是我删除了扩展spock规范
答案 0 :(得分:1)
我不知道你试图通过这个代码实现什么,但Spock不能以这种方式使用。 Spock规范必须通过JUnit执行,并且必须符合某些规则(例如,测试方法包含setup:
或expect:
等块。