Spock Grails 2.0 Forward不返回模型数据
我正在尝试使用Spock插件测试Grails2.0.4控制器 --------------------控制器-------------------Spock Grails 2.0 Forward不返回模型数据,grails,spock,Grails,Spock,我正在尝试使用Spock插件测试Grails2.0.4控制器 --------------------控制器------------------- def addComment= { def pageCounter=0 def result=reviewService.addComment(params.copyId,params.comment) forward(action: "showPage", model: [copyId: result.copy.id,
def addComment= {
def pageCounter=0
def result=reviewService.addComment(params.copyId,params.comment)
forward(action: "showPage", model: [copyId: result.copy.id,pageCounter:pageCounter])
}
=========================控制器测试============================
@TestFor(ReviewController)
class ReviewControllerSpec extends ControllerSpec
{
def "test"() {
setup:
-------------
when:
-------------
def returnMap=controller.addComment()
then:
mockResponse.forwardedUrl=='/grails/review/showPage.dispatch'
}
测试通过,但我无法获得控制器中定义的返回参数
forward(action: "showPage", model: [copyId: result.copy.id,pageCounter:pageCounter])
请您帮助我,让我知道如何在我的Spock单元测试中获取返回参数copyId
和pageCounter
。我已经在控制器代码中打印了值(上述两个变量),并且它们包含数据。我研究了
forwardArgs
,mockResponse
等。。
请帮助向前方法实际上不接受
模型
参数。看
您可以使用params
,在这种情况下,这些值将附加到您正在测试的forwardedUrl
的查询字符串中
如果您想在操作之间传递更复杂的数据,您可能需要查看在重定向之前将模型放入flash范围的方法。向前方法实际上不接受
模型
参数。看
您可以使用params
,在这种情况下,这些值将附加到您正在测试的forwardedUrl
的查询字符串中
如果您想在操作之间传递更复杂的数据,您可能希望查看在重定向之前将模型放入flash范围的方法。是否有服务器端唯一的方法来执行
链
?由于forward
没有传递任何模型,而且chain
需要客户端重定向,因此似乎缺少了大量功能。我不知道这一点,尽管我想你可以自己开发。我认为请求属性在转发
调用后会被保留,因此您可以将模型存储在那里,并在下面的控制器中检索它。不过,感觉上您将使操作紧密耦合。是否有一种服务器端唯一的方法来执行链
?由于forward
没有传递任何模型,而且chain
需要客户端重定向,因此似乎缺少了大量功能。我不知道这一点,尽管我想你可以自己开发。我认为请求属性在转发
调用后会被保留,因此您可以将模型存储在那里,并在下面的控制器中检索它。不过,感觉上你会把这些动作紧密地结合在一起。