我在路由中有一个约束,只允许路由ajax请求。我如何用rspec测试呢?
具体来说,什么测试将显示/ schedules是可路由的,但只能从AJAX获得。

routes.rb

  class OnlyAjaxRequest
    def matches?(request)
      request.xhr?
    end
  end

  resources :schedules, :constraints => OnlyAjaxRequest.new


目前,我在测试的以下通过部分中显示了正常的GET请求不可路由,但是我想知道如何测试AJAX GET请求可路由。

spec / routing / schedules_routing_spec.rb

require 'spec_helper'

describe "GET /schedules" do
    it "returns http failure to non AJAX request" do
      {:get => '/schedules'}.should_not be_routable
  end
end

最佳答案

尝试这个
get "/schedules",format: :xhr
response.should be_ok

07-25 23:56