2016-12-09 2 views
0

Я пытаюсь создать спокойную службу, и я пытаюсь использовать свой ответ JSON и преобразовывать его обратно в объект.Grails Потребление ответа JSON.

метод контроллера

def mergeVendors(String region) { 

    def report = new VendorReport(); 
    //do something with report 

    response.status = 201 
    response ([vendorReport: report]) as JSON 
} 

Метод испытания

void "Test Merge Vendors"() { 
    when:  
    controller.request.method = 'POST' 
    controller.request.json = '[{id:1, zip:"14224"}]' 

    controller.mergeVendors("Florida") 

    def response = controller.response 


    then: 
    response.zip == "14224" 
} 

Код выше, что я пытаюсь использовать, и я получаю следующее исключение. Как вернуть ответ обратно в объект VendorReport?

groovy.lang.MissingMethodException: Нет подписи метода: org.healthresearch.VendorController.response() применяется для типов аргументов: (java.util.LinkedHashMap) значения: [[vendorReport: [email protected] ]] Возможные решения: ответить (java.lang.Object), getResponse(), ответить (java.lang.Object, java.util.Map), ответить (java.util.Map, java.lang.Object), отвечает (java.lang.String), respondsTo (java.lang.String, [Ljava.lang.Object;)

ответ

3
response ([vendorReport: report]) as JSON 

изменение

render ([vendorReport: report]) as JSON 
+0

Что мне нужно сделать, чтобы вернуть json обратно в объект VendorReport в моем тесте? –

+0

'then: response.json == report' – zfChaos

+0

then: \t def response = controller.response.json; Ответ == отчет Поставщики тестовых слияний (org.VendorControllerIntegrationSpec) | org.codehaus.groovy.grails.web.converters.exceptions.ConverterException: Ошибка синтаксического анализа JSON \t на grails.converters.JSON.parse (JSON.java:278) \t в org.VendorControllerIntegrationSpec.Test Объединение производителей (VendorControllerIntegrationSpec. groovy: 32) Вызвано: org.codehaus.groovy.grails.web.json.JSONException: ожидается символ ',' или ']' в символе 16 из ['vendorReport': [email protected]] \t at grails.converters.JSON.parse (JSON.java:269) \t ... 1 еще –

Смежные вопросы