У меня есть иерархия объектов домена с абстрактным классом верхнего уровня. В GORM, они могут быть определены следующим образом:Как получить экземпляры абстрактного класса домена в модульных тестах Grails?
abstract class Dog {
...
}
class Collie extends Dog {
...
}
Теперь я хотел бы модульное тестирование контроллера, который пропускается собака ID, например, так:
//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)
недостаточно (хотя фактический издеваемый объект на самом деле является экземпляром Collie).
Любые подсказки?