我试图在单元测试期间访问保存的域对象,所以当 Controller 方法将域类保存在单元测试范围之外时,我可以访问它以测试其上设置的属性。
一直在查看domainClassesInfo(DefaultArtefactInfo),从查询中保存了MetaClasses,但没有成功。
这看起来应该很容易-
void testMyControllerMethod() {
mockDomain(MyDomainClass)
controller.myControllerMethod()
//get MyDomainClass instance here for test assertions
//assertEquals value1, myDomainClass.attribute1
}
然后在 Controller 中:
def MyControllerMethod() {
//do stuff
MyDomainClass myDomainClass = new MyDomainClass(attribute1:value1,attribute2:value2)
myDomainClass.save()
}
任何想法如何提取保存的域类,不胜感激
最佳答案
如果 Controller 是唯一一个保存MyDomainClass的新实例的 Controller ,那么您应该能够这样做:
void testMyControllerMethod() {
mockDomain(MyDomainClass)
controller.myControllerMethod()
//get MyDomainClass instance here for test assertions
def result = MyDomainClass.list()[0]
assertEquals value1, result.attribute1
}