如何使用Spock / Build-Test-Data对包含'where'或使用'namedquery'的方法进行单元测试?

时间:2012-05-25 08:58:54

标签: unit-testing grails spock

我尝试了几种组合,但我无法测试一种依赖于Grails''查询或'命名查询'的方法。

顺便使用Grails 2.0.3!

服务代码

def findPersonInCity(name, city) {
    Person p = Person .where{fullname =~ name && cities.contains(city)}.find()
}

测试

@Build([Person,City])
class PersonSpec    

    // code omitted

    def "Find a person by name"() {
        when:
        City city = City.build(name: "NY")
        Person.build(fullname: "test", city)
        Person found = personService.findPerson("test", city)

        then:
        found.name == "test"
    }    
}

我在成功测试“where”查询或“named-queries”时缺少什么?

我得到的错误似乎与相关属性有关。 groovy.lang.MissingMethodException:没有方法签名:grails.gorm.CriteriaBuilder.cities()适用于参数类型:

当只查询名称时,似乎有效.. :(

0 个答案:

没有答案