gpt4 book ai didi

grails - 如何在Grails 2.4.5中模拟具有复合ID的对象?

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

import groovy.transform.EqualsAndHashCode

@EqualsAndHashCode(includes = ['action', 'reason'])
class MyObject implements Serializable {
String action
String reason
String description

static mapping = {
table name: "my_object"
version false
id composite: ["action", "reason"], generator: 'assigned'

cache usage: "read-only"

action column: "prog_action_c"
reason column: "prog_reason_c"
description column: "descr_c"
}
}

我尝试在我的单元测试中模拟此对象,如下所示:
.....
def setup() {
..
mockDomain(MyObject,[
[
action : 'ACT1',
reason : 'REAS1',
description : 'First reason'
],
[
action : 'ACT2',
reason : 'REAS2',
description : 'Second reason'
]
])

def myObject = MyObject.first()

}
...

当我用findAll()或first()查询对象时,我得到的是空列表或null

应该如何 mock 这个对象?

最佳答案

简短的答案是,我们不能在 grails 2.4.5 中以这种方式模拟对象。我们可以模拟的方法是:定义一个方法,以将这些对象加载到您正在测试的任何类的 Controller /服务中。然后监视测试的类,并模拟该方法以将所需的任何内容作为域对象返回。

关于grails - 如何在Grails 2.4.5中模拟具有复合ID的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50352138/

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