unit-testing - 有什么办法可以使用GORM在模拟域对象中设置ID

标签 unit-testing grails gorm spock

我有一个带有以下代码的 Controller ...

def myController(Command command){
   DomainObj obj = command.domain
   if(obj.id) update(obj)
   else createNew(obj)
   ....
}

现在,我正在尝试创建测试,但是当我这样做时
@Mock(DomainObj)
...
  DomainObj obj = new DomainObj(id:123L)

但是由于未设置ID,所以测试失败。我无权访问GORM项目,因此更改域类(即hasId方法)不是可行的选择。有没有办法可以在单元测试中设置此值?

最佳答案

没关系,即使IDE仍显示为null,显然obj.metaClass.id = 123仍然有效

关于unit-testing - 有什么办法可以使用GORM在模拟域对象中设置ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546458/

相关文章:

c# - xUnit和测试的多个数据记录

javascript - 如何在 Jasmine 中测试 JavaScript 图像 onerror 回调?

unit-testing - 这是一个正确的单元测试吗?

grails - 一对多的组合键和Grails中的不同列名

c# - SQL Server 数据库单元测试和持续集成

tomcat - Windows 操作系统中 Tomcat 服务器上部署的 Grails 应用程序增加堆空间

image - 使用 Grails 在电子邮件中发送图像

ajax - Grails remoteFunction Ajax协助

grails - 如何使用Grails GORM进行多个字段匹配的左外部联接?

grails - 当ID在show.gsp中具有不同的名称时,如何修改g:form标记以使删除工作?