我尝试了几种组合,但我无法测试依赖于 Grails 'where' 查询或 'named-query' 的方法。
顺便说一下,使用 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() 适用于参数类型:
当只查询名称时,它似乎有效.. :(