我正在尝试创建一个集成测试,并且在关联绑定中遇到问题。
我正在尝试在控制器中测试保存方法。
我有域类事件
class Event {
...
..
.
Organizer organizer
}
在控制器保存方法中,我有
def save() {
...
..
.
def passedOrganizerId = params.organizer.id // (1)
//Some comprobations
// if comprobations pass
def event = new Event(params) // (2)
.
}
该方法似乎工作正常,但我想创建一个集成测试。
class EventControllerTests extends GroovyTestCase {
void testSave() {
def params = [:]
// Params setup (3)
controller.params.putAll(params)
controller.save()
...
..
.
}
}
我尝试了几种方法来进行参数设置,但都失败了。
如果在测试方法行(3)我输入:params.organizer.id = 3
它失败,因为组织者为空
如果我输入 params['organizer.id'] = 3
,那么它在第 (1) 行失败
如果我输入
params.organizer = [:]
params.organizer.id = 3
它不会失败,但数据绑定不起作用。也就是说 event.organizer 在第 (2) 行之后为空
如何使数据绑定在测试方法中起作用?