首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过引用传递的Grails单元测试在模拟时不起作用

通过引用传递的Grails单元测试在模拟时不起作用
EN

Stack Overflow用户
提问于 2016-11-06 20:45:31
回答 1查看 95关注 0票数 1

我有一个单元测试,在这里我模拟一个服务类来保存一个域。最初,我的控制器方法如下所示:

代码语言:javascript
复制
def save(Long organizationId, Convention convention) {
  conventionService.save(organizationId, convention)

  if (convention.hasErrors()) {
    response.status = HttpStatus.UNPROCESSABLE_ENTITY.value()
    respond convention.errors
  } else {
    response.status = HttpStatus.CREATED.value()
    respond convention
  }
}

一般来说,这是因为Java是通过引用传递的,因此传递到保存方法的convention在整个方法中都是相同的convention对象。但是,当模拟conventionService.save方法时,通过引用传递不起作用。调整我的方法以说明这一点:

代码语言:javascript
复制
def save(Long organizationId, Convention convention) {
  convention = conventionService.save(organizationId, convention)

  if (convention.hasErrors()) {
    response.status = HttpStatus.UNPROCESSABLE_ENTITY.value()
    respond convention.errors
  } else {
    response.status = HttpStatus.CREATED.value()
    respond convention
  }
}

允许我的测试通过,因为convention对象是我期望从模拟中得到的:

代码语言:javascript
复制
1 * service.save(1, _) >> new Convention(
       id: 1,
       name: 'Con 1',
       description: 'This is a pretty cool convention, everyone should go',
       startDate: new Date(),
       endDate: new Date()+10,
       organization: organization)

我的问题是,这是我应该报告的预期行为还是错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-06 20:56:18

我的问题是,这是我应该报告的预期行为还是错误?

这是预期的行为。这不是你应该报告的bug。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40454347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档