gpt4 book ai didi

groovy - 无法使用具有 createCriteria() 语句的函数执行单元测试

转载 作者:行者123 更新时间:2023-12-04 06:31:20 25 4
gpt4 key购买 nike

我想写一个单元测试(通过 JUnit)来测试这个函数在 Groovy 中的值:

    String getPeopleNamesById(int[] peopleIds) {
List<String> names = People.createCriteria().list{
projections { property("name") }
'in' ("id", peopleIds)
}
return names ? names.join(", ") : "";
}

但是在阅读此语句时单元测试总是失败:List names = People.createCriteria().list{...}
groovy.lang.MissingMethodException:无方法签名:People.createCriteria() 适用于参数类型:() 值:[]。
我猜是因为调用了执行某些数据库连接和查询的函数?
你能帮我写这个测试吗?非常感谢!

最佳答案

条件查询在单元测试中不可用,并且不由 mockDomain 提供.您可以自己模拟您的标准查询,例如与 mockFor ,或者让您的测试成为集成测试,您可以在其中访问完整的数据库环境。

以下是如何模拟查询的示例:

mockFor(People).demand.static.createCriteria = { ->
[list: { closure -> [ <some mock objects> ] } ]
}

关于groovy - 无法使用具有 createCriteria() 语句的函数执行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5386479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com