我试图在单元测试期间访问保存的域对象,所以当 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
}

09-05 16:12