【发布时间】:2012-01-18 12:18:31
【问题描述】:
我有一个具有顶级抽象类的域对象层次结构。在 GORM 中,它们可以这样定义:
abstract class Dog {
...
}
class Collie extends Dog {
...
}
现在我想对通过 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 实例)。
有什么提示吗?
【问题讨论】:
标签: unit-testing grails mocking grails-orm