我尝试了几种组合,但我无法测试一种依赖于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()适用于参数类型:
当只查询名称时,似乎有效.. :(