Grails: тест интеграции Ajax-запроса - xhr - PullRequest
2 голосов
/ 24 января 2012

Как настроить тест запроса ajax для контроллера в Grails?

Я пытался

    def homeController = new HomeController()

    homeController.request.contentType = "text/json"
    homeController.request.content = '{"event_id":2}'.getBytes()
    homeController.request.xhr = true //error: can't be set

    homeController.landingPage()

В моем действии "посадочная страница" у меня есть

Controller
...
...
 if(params.event_id){
     //set values of the "event" object
 }

 if (request.xhr) {

       def result = [eventTile: event.getAt(0).title, eventId: event.getAt(0).id]

            render result as JSON
            return
        }
...
...

Я не смог найти способ добраться до поля параметров, не указав его нормально.

 homeController.params.event_id = 2

Итак, как мне установить интеграционный тест Grails, чтобы установить xhr в значение true, которое будет возвращать JSON из моего контроллера?

Ответы [ 2 ]

2 голосов
/ 28 ноября 2012

Может быть, я не правильно понял вопрос.Но обнаружили, что вы можете использовать этот способ, чтобы ваш запрос рассматривался как запрос xhr.

def homeController = new HomeController()

homeController.request.content = '{"event_id":2}'.getBytes()
homeController.request.makeAjaxRequest()
homeController.landingPage()

Возвращаемое значение будет GrailsMockHttpServletResponse

homeController.response.json == "" //Make your tets here
0 голосов
/ 25 января 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...