我正在使用 grails 2.1.0 和 groovy 1.8。我在服务中有以下代码:
def listServerPartners() {
ServerModel.withCriteria {
partner {
order('name', 'asc')
}
projections {
distinct('partner')
}
}
}
这适用于正在运行的应用程序和集成测试。但是,当我尝试使用单元测试时,我得到一个空白列表。
我注意到,如果我将上面的代码更改为下面的代码并在对象伙伴中实现可比较的接口,则单元测试可以工作,但应用程序和集成测试却不能。
def listServerPartners() {
ServerModel.withCriteria {
projections {
distinct('partner')
}
order('partner', 'asc')
}
}
查看运行应用程序时的 SQL,我注意到对于第一个代码,我得到一个
“按 partner_al1_.PartnerName asc 订购”对于第二个,我得到一个
“按 partner_al1_.Partner_Id asc 订购”,显然是我不想要的。
关于如何模拟我在为单元测试运行应用程序和集成测试时的正确行为有什么建议吗?
更新:单元测试的输出:
assert Partner.list() == results
| | |
| | []
| false
[Partner 4, Partner 3, Partner 2, Partner 1]
- 谢谢