这个语法在 Groovy 中是什么意思?
class CreateMessagePage extends Page {
static at = { assert title == 'Messages : Create'; true }
static url = 'messages/form'
static content = {
submit { $('input[type=submit]') }
MyVeryStrangeForm { $('form') }
errors(required:false) { $('label.error, .alert-error')?.text() }
}
}
(摘自Spring MVC Test HtmlUnit手册)
问题涉及Groovy语言,我想用Groovy术语了解答案。
content
是什么?它是一个静态变量吗?它的名称是随机的还是基类Page
预定义的?
=
(等号)后面是什么?它是一个赋值运算符吗?
=
右侧是什么?这是一个闭包吗?或者这是一个匿名类吗?或者这两者是相同的?
花括号内的submit
是什么?
它是一个变量吗?那为什么它后面没有赋值运算符呢?
这是一个函数定义吗?我可以在Groovy的任意位置定义函数吗?如果这是一个函数定义,那么errors
是什么?
submit
是一个函数调用吗?它接收{ $('input[type=submit]') }
作为参数吗?如果是,那么这个函数在哪里定义?例如,MyVeryStrangeForm
在哪里定义(根本没有定义)?
如果这是一个函数调用,那么它不会起作用,因为它未定义...
form = { $('form') }
而是form { $('form') }
,即没有赋值? - Dims