unit-testing - grails/groovy:单元测试时如何访问保存的域对象?

标签 unit-testing class grails groovy dns

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

关于unit-testing - grails/groovy:单元测试时如何访问保存的域对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976691/

相关文章:

c++ - 无法分离头文件和 cpp 文件(包含错误和代码)

unit-testing - 如何在不修改数据库的情况下运行集成测试?

unit-testing - 编码时间与单元测试时间之比

python - 运行 Tornado AsyncHTTPTestCase 时获取错误文件描述符

grails - 如何防止 Grails 域被更新或删除?

grails - 对Grails应用程序的语言本地化支持

grails - GSP上Grails应用中的循环问题

unit-testing - XSLT 单元测试

c++ - 我的聚合、关联和组合关系在这个 C++ 程序中不起作用?

关于 Intel PCM 源代码的 C++ #ifndef INTELPCM_API #define INTELPCM_API #endif