我有一个控制器动作,它处理ajax和非ajax请求。但是,如果它是一个ajax请求,它会做一些额外的事情。
if(request.xhr){仅用于ajax请求的东西}
但是,当我试图对此进行单元测试时。无论我做了什么,我都无法创建/模拟ajax请求。即,request.xhr一直失败。
我做过尝试
request.makeAjaxRequest()
但是,它不起作用。有什么想法??
答案 0 :(得分:2)
在您的单元测试中,您可以执行以下操作:
request.makeAjaxRequest()
答案 1 :(得分:1)
虽然已经很长一段时间了,但问题是问题,但这是我为Grails即将推出的新手提供的解决方案...
controller.metaClass.getRequest = { ->
[xhr: true]
}
或者只是它可能是
void 'test list'() {
when:
request.method = 'POST'
request.makeAjaxRequest()
controller.getPage()
then:
// …
}
此解决方案适用于我的模拟 Ajax请求
的情况答案 2 :(得分:0)
只需添加以下标头即可:controller.request.addHeader('X-Requested-With', 'XMLHttpRequest')