在集成测试中使用GORM方法

时间:2012-11-19 22:55:20

标签: grails integration-testing gorm spock

我正在尝试在我的域类中使用gorm find方法,在Spock Integration Spec中。

我的代码:

class myDomainClassSpec extends IntegrationSpec{
    ...
    def 'my test'() {
        when: ...
        then:
            MyDomainClass.find { id == 1 }
    }
    ...
}

这失败了,抛出:

groovy.lang.MissingPropertyException: No such property: id for class: grails.gorm.DetachedCriteria

如果我编码:MyDomainClass.findAll()。find {id == 1}它可以工作。

任何想法??

1 个答案:

答案 0 :(得分:0)

我不确定Spock究竟是如何在这里工作的,但看起来你MyDomainClass.find调用正在创建一个DetachedCriteria,我试图绕过这个就是

MyDomainClass.findById(1)

或者如果您使用更复杂的标准,请尝试

MyDomainClass.where { id == 1 }

或仅使用Criteria

(MyDomainClass.createCriteria()) { id == 1 }