gpt4 book ai didi

grails - Grails 集成测试中的一对多关联数据绑定(bind)问题

转载 作者:行者123 更新时间:2023-12-02 15:35:03 25 4
gpt4 key购买 nike

我正在尝试创建一个集成测试,并且在关联绑定(bind)中遇到问题。

我正在尝试在 Controller 中测试保存方法。

我有域类事件

class Event {
...
..
.
Organizer organizer
}

在 Controller 保存方法中,我有
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

它不会失败,但数据绑定(bind)不起作用。也就是说 event.organizer 在第 (2) 行之后为空

如何使数据绑定(bind)在测试方法中起作用?

最佳答案

您可以在测试中设置参数如下:

...
controller.params.organizer = Organizer.get(3)
controller.save()
...

即直接使用域对象作为 Controller 参数

关于grails - Grails 集成测试中的一对多关联数据绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12800166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com