1

问题:我从 Grails 1.3.7 升级到 Grails 2.0。然后我不得不重构我的控制器测试以使用注释:@TestFor(controller) 和 Mock(domain) 解决了很多问题。但是,在 1.3.7 中可以使用 controller.renderArgs 和 controller.redirectArgs。在 2.0 中似乎不再是这种情况,我很难弄清楚如何获取这些非常方便的变量提供的数据。

似乎不会根据此 Grails Jira 发布提供此数据。James Lang 在这篇文章中的最后一条评论,没有回应,是我的确切问题:

在 Grails 2.0 控制器单元测试中,如何获取诸如 action、id、params 等的 renderArgs?

Jira 评论仅提供输入以获取 response.redirectUrl

有任何想法吗?

4

2 回答 2

2

感谢 Graeme 的更新和帖子链接。

我们对该问题的解决方案是对控制器进行元分类以获取这些变量。我创建了相应的成员变量,然后将以下代码添加到单元测试的设置中:

    controller.metaClass.redirect = { Map map ->
        redirectAction = map.action
        redirectID = map.id
        redirectUrl = map.url
    }

    controller.metaClass.render = {Map map ->
        renderView = map.view
        renderModel = map.model
    }
于 2012-03-15T13:45:47.903 回答
0

目前看来你不能。我看到了Graeme 回复的这个论坛帖子,并提到它需要一个功能请求。

于 2012-03-12T19:27:27.097 回答