1
我有一個頂級抽象類的域對象層次結構。在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)
是不夠的(即使實際的嘲笑對象實際上是一個牧羊犬實例)。
任何提示?