私は 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 で注文"2番目のものについては、
"partner_al1_.Partner_Id asc で注文"、明らかに私が望まないものは何ですか。
アプリケーションと単体テストの統合テストを実行するときの正しい動作を模倣する方法について何か提案はありますか?
更新:単体テストからの出力:
assert Partner.list() == results
| | |
| | []
| false
[Partner 4, Partner 3, Partner 2, Partner 1]
- ありがとう