【问题标题】:How to test AJAX with Ruby on Rails?如何使用 Ruby on Rails 测试 AJAX?
【发布时间】:2012-02-06 12:20:46
【问题描述】:
有人可以提供建议,如何在 Ruby on Rails 中测试 AJAX?
例如:我单击按钮,查询到 TestController#new,在该方法中我们有 respond_with(@test) 和 new.js.erb,其中是 html 表单。好的,我可以点击这个链接/按钮,xhr 查询会起作用,但我没有得到任何响应,我需要测试一下。
请问有人可以帮忙吗?
我正在使用 Rspec。
【问题讨论】:
标签:
ruby-on-rails
ajax
rspec
tdd
【解决方案1】:
在 Rails 4.2 中,对于发送 ajax 请求,使用键“xhr: true”设置可选的哈希参数以调用 get、post、patch、put 或 delete 方法。
例如:
get users_path + '?page=2', xhr: true
然后使用 assert_select 来验证更新页面上的一些 HTML 元素。
【解决方案3】:
取决于您的 Ajax 请求的内容......实际上最好在多个级别上对其进行测试。
使用控制器测试来测试控制器的响应。
使用像 jasmine 这样的纯 JS 测试框架测试您的 JS 是否正确处理此响应。
使用 cucumber 或集成 rspec(在 capybara/selenium 的帮助下)测试您在应用程序中的流程。