如何在Grails 2.4.5中使用复合ID模拟此对象?

时间:2018-05-15 13:57:19

标签: grails spock

SET CURRENT LOCK TIMEOUT

我试着在我的单元测试中模拟这个对象,如下所示:

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"
    }
}

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

该对象应如何被嘲笑?

1 个答案:

答案 0 :(得分:0)

简短的回答是我们不能以这种方式在 grails 2.4.5中模拟对象我们如何模拟:定义一个方法来加载控制器/服务中的那些对象,无论你正在测试什么类。然后间谍测试的类,并模拟方法返回你想要的任何域对象。