Я бы не стал беспокоиться. Вместо этого создайте методы в своем доменном классе и смейтесь над ними. Это облегчает тестирование, но, что более важно, имеет то преимущество, что сохраняет постоянство там, где оно есть, а не разбрасывает его по всей базе кода:
class MyDomainClass {
String foo
int bar
static MyDomainClass findAllByIdAndAnotherParameter(long id, long anotherParameterId) {
createCriteria().list {
eq('id',id)
eq('anotherParameter',anotherParameterId)
}
}
static MyDomainClass getByIdAndAnotherParameter(long id, long anotherParameterId) {
createCriteria().get {
eq('id',id)
eq('anotherParameter',anotherParameterId)
}
}
}
Тогда в ваших тестах просто смоделируйте это как
def testInstances = [...]
MyDomainClass.metaClass.static.findAllByIdAndAnotherParameter = { long id, long id2 ->
return testInstances
}
и
def testInstance = new MyDomainClass(...)
MyDomainClass.metaClass.static.getByIdAndAnotherParameter = { long id, long id2 ->
return testInstance
}