2013-09-27 30 views
1

我有一个集成测试。传递给控制器​​的参数包含多个对象(电话号码)的列表。每个电话号码都有一个类型/号码。当我运行代码,我可以捕捉什么普惠制被发送到params对象控制器,如下所示:如何在grails控制器测试中设置params map

enter image description here

如何代码集成测试参数地图?到目前为止我尝试过的所有东西都没有奏效(见下文)。我试图在调用action之前重现gsp表单在controller.params中发送的内容。

 def bindingMap = [alt1: 'Previous', 
       'phones[0]': [type: 'H', number: '55555', deleted: 'false', id: '']] 

     //controller.params 
//  controller.params = map//[alt1 : 'Previous' 
//    phones[0].type, 'H' 
//    phones[0].number, '55555', 
//    phones[0].deleted, 'false', 
//    phones[0].id, '' 
     //] 
/* 
     controller.params.phones[0]["type"] = 'H' 
     controller.params.phones[0]["number"] = '12345' 
     controller.params.phones[0]["deleted"] = 'false' 

编辑:

想通了:

def bindingMap = [alt1: 'Previous', 
      'phones[0].type': 'H', 
      'phones[0].number': '55555', 
      'phones[0].deleted': 'false', 
      'phones[0].id': '' 
    ] 
    controller.params.putAll(bindingMap) 

回答

0

您是否尝试过?

controller.params.phones = [ 
    [type: 'H', number: '55555', deleted: 'false', id: ''], 
    [type: 'A', number: '66666', deleted: 'false', id: ''] 
] 
相关问题