2012-03-12 91 views
1

问题: 我从Grails 1.3.7升级到Grails 2.0。 我不得不重构我的控制器测试使用注释:@TestFor(控制器)和模拟(域),它处理了很多问题。 但是,在1.3.7中,controller.renderArgs和controller.redirectArgs可用。这在2.0中似乎不再是这种情况,而且我正在很难弄清楚如何获得这些非常方便的变量提供的数据。Grails 2.0 - 升级控制器测试并丢失renderArgs和redirectArgs

看来这个数据将不会基于this Grails Jira posting提供。 James Lang的这篇文章中的最后一条评论没有任何回应,这是我的确切问题:

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

的吉拉评论仅供电源输入获得的response.redirectUrl

任何想法?

回答

0

目前看来你不能。我看到this forum post格雷姆回答说,它会提出一个功能请求。

+0

考虑再提出问题,因为它引起了很大的重构。感谢这篇文章。 – 2012-03-15 13:28:37

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 
    }