Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spock Grails 2.0 Forward不返回模型数据_Grails_Spock - Fatal编程技术网

Spock Grails 2.0 Forward不返回模型数据

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,

我正在尝试使用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,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
需要客户端重定向,因此似乎缺少了大量功能。我不知道这一点,尽管我想你可以自己开发。我认为请求属性在
转发
调用后会被保留,因此您可以将模型存储在那里,并在下面的控制器中检索它。不过,感觉上你会把这些动作紧密地结合在一起。