如何在Grails中为控制器设置ajax请求测试?
我试过了
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()
在我的“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
}
...
...
如果没有正常指定,我找不到到达params字段的方法。
homeController.params.event_id = 2
那么如何设置Grails集成测试以将xhr设置为true,这将从我的控制器返回JSON?
答案 0 :(得分:2)
也许我没有把问题说得对。但是发现你可以用这种方式强制你的请求被视为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
答案 1 :(得分:0)