怎么测试ajax get请求,为什么我的AJAX在运行测试时请求dev中的PUT请求,但请求了GET请求?...
在我的Rails應(yīng)用程序中,我制作了一個AJAX PUT請求(使用Coffeescript),該請求在我的開發(fā)環(huán)境中正常工作。當我檢查按鈕,點擊后,會觸發(fā)使用Firefox的AJAX請求時,它看起來是這樣的:為什么我的AJAX在運行測試時請求dev中的PUT請求,但請求了GET請求?
return $.ajax({
url: url,
type: 'PUT',
data: {
minutes: minutes,
appt_id: appt_id
}
});
然而,當我運行一個集成測試點擊相同的按鈕,我檢查在Firefox按鈕(我停在中間使用byebug測試),AJAX請求是這樣的:
return $.get(url, {
minutes: minutes,
appt_id: appt_id
});
我只是使用GET使用PUT(當我手動測試它,它的工作原理)改變了要求,并測試通過時它使用GET,但在更改為使用PUT后,測試失敗,出現(xiàn)以下錯誤:
1.2) Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}"
ActionController::RoutingError:
No route matches [GET] "/appointments/9998/put_away"
為什么測試環(huán)境中的AJAX請求從PUT更改為GET請求,以及如何解決此問題以便我的測試通過?謝謝!
我使用Rails 4.2.0,Ruby 2.2.4p230和RSpec 3.4.4,以及Selenium和Capybara進行測試。
+0
你的代碼是如何改變的?第一個示例代碼與第二個代碼不同!你也可以發(fā)布網(wǎng)絡(luò)標簽請求和響應(yīng)? –
+0
@ dm03514我使用'$ .ajax替換了'$ .get(url,{分鐘:分鐘,appt_id:appt_id})'',''PUT', data:{minutes:minutes, appt_id:appt_id} })'并將我的路由從'get'send_more_minutes_message''改為'put'send_more_minutes_message''。 –
+0
您是否預(yù)先編譯過測試環(huán)境中的資產(chǎn)?如果是這樣,它有時可以阻止檢測JS的變化,所以它繼續(xù)使用舊版本 –
總結(jié)
以上是生活随笔為你收集整理的怎么测试ajax get请求,为什么我的AJAX在运行测试时请求dev中的PUT请求,但请求了GET请求?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 电网交流采样
- 下一篇: 财务系统专用服务器中标公告,东南大学财务
