【问题标题】:Is there any way to set ID in mock domain object using GORM有没有办法使用 GORM 在模拟域对象中设置 ID
【发布时间】:2014-05-08 15:43:16
【问题描述】:

我有一个带有以下代码的控制器...

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 方法)不是一个可行的选择。有没有办法在我的单元测试中设置这个值?

【问题讨论】:

    标签: unit-testing grails grails-orm spock


    【解决方案1】:

    尽管 IDE 仍显示为 null,但显然 obj.metaClass.id = 123 工作正常

    【讨论】:

      【解决方案2】:

      你也可以像这样直接在对象中设置id:

      @Mock(DomainObj)
      ...
      DomainObj obj = new DomainObj(id:123L)
      obj.id = 123
      

      【讨论】:

        猜你喜欢
        • 2016-10-23
        • 2012-06-05
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 2020-02-09
        • 2020-07-07
        • 1970-01-01
        相关资源
        最近更新 更多