【发布时间】:2011-09-08 03:25:15
【问题描述】:
第一次在这里发帖,希望与很多人相关。
我正在为一个域编写集成测试,在那个域上我有一个使用withCriteria() 方法的查询。我在网上搜索了很多内容,找到了很多关于如何模拟条件查询的详细说明,但没有一个关于如何准确测试它的说明。
我尝试使用mockDomain(domain,list) 函数模拟域,并为测试设置一个域以在setUp() 中使用,然后调用标准,但我什么也没得到。
我在这里做了类似的findBy 并得到了结果,但不完全是我正在寻找的结果。我很确定这不仅仅是我的查询,而是标准,我在一些地方读过标准在服务测试中不起作用。到目前为止,该查询在应用程序中对我有用,但我想进行一些测试,以防我的代码库发生更改。
实际上,我已经按照很多人的建议做了,并提取了查询的代码,并使其成为我域中的静态方法,这样我就可以为使用它的测试模拟它,但现在我不知道如何实际测试这部分。我是否需要运行应用程序并从这个角度进行功能测试,或者有什么方法可以在 grails 单元/集成测试中做到这一点。我将在下面发布我的查询。
static Attribute getDefinitionsUsingCriteria(List categoryNames, List types){
def definitions = Definition.withCriteria() {
and {
'in'('type', types)
if (categoryNames) {
categories {
'in'('name', categoryNames)
}
}
}
}
return definitions
}
Definitions 有一个字符串属性类型,并且有一个Set 类型的属性类别,该集合中的每个元素都有一个String 名称属性。
我对 grails 还是很陌生,并且已经阅读了许多参考书,我很惊讶到目前为止我读过的所有书中都缺少这一点。我希望这只是我的一个错误,并且很容易测试。感谢您的帮助,并感谢您阅读这篇长文。
JR。
【问题讨论】: