【发布时间】:2015-09-04 18:36:01
【问题描述】:
用 Capybara 测试 OPTIONS 响应的好方法是什么?
用例:需要为 CORS 配置 Rails 应用响应标头。我知道这不是“用户体验”的一部分。但是,如果浏览器无法发出请求,用户将无法使用该网站。
【问题讨论】:
标签: ruby-on-rails http http-headers cors capybara
用 Capybara 测试 OPTIONS 响应的好方法是什么?
用例:需要为 CORS 配置 Rails 应用响应标头。我知道这不是“用户体验”的一部分。但是,如果浏览器无法发出请求,用户将无法使用该网站。
【问题讨论】:
标签: ruby-on-rails http http-headers cors capybara
使用 Capybara 测试 OPTIONS 响应的一个好方法是不使用 Capybara。
除了玩笑,最好在 controller test 请求规范中完成,因为它不涉及任何实际的 html 解析。
RSpec.describe 'Rabbits' do
describe "GET /rabbits/:id" do
it "enables CORS" do
get rabbit_path(rabbit)
expect(response.headers['Access-Control-Allow-Origin']).to eq "*"
end
end
end
您可以使用process :show, "OPTIONS" [1] 测试OPTIONS http 方法
【讨论】:
GET 请求(使用 visit)之外的任何东西都需要一些非常痛苦的 hack,根据正在使用的驱动程序可能会或可能不会起作用(例如rack_test、poltergeist 或 selenium)。 Capybara 也很慢,因为它的级别非常高,而且比控制器测试要多得多。
undefined method 'call' for 应用程序,所以测试设置似乎有问题...