У меня есть иерархия объектов домена с абстрактным классом верхнего уровня.В GORM они могут быть определены следующим образом:
abstract class Dog {
...
}
class Collie extends Dog {
...
}
Теперь я хотел бы провести модульное тестирование контроллера, который получает идентификатор собаки, например:
//in the unit test
new Collie(id:1).save(validate:false)
params.id = 1
controller.show()
и
//in the tested controller
def dog = Dog.get(params.id)
Это работает с реальным GORM, к сожалению, тестирующая реализация GORM ничего не возвращает, поскольку я не могу использовать @Mock(Dog)
или mockDomain(Dog)
(при этом возвращается исключение, поскольку Dog является абстрактным), а @Mock(Collie)
- нетдостаточно (хотя фактический макетируемый объект на самом деле является экземпляром Колли).
Есть какие-нибудь подсказки?