mor*_*man 6 specifications rspec ruby-on-rails rspec-rails
在我的路线文件中,我有:
resources :subscription, :only => [:show], :constraints => {:protocol => "https"}
Run Code Online (Sandbox Code Playgroud)
我正在尝试为此路线添加一个规范,如下所示:
it "recognizes and generates #show" do
{ :get => "/subscription", :protocol => 'https' }.should route_to(:controller => "subscriptions", :action => "show")
end
Run Code Online (Sandbox Code Playgroud)
但是,规范仍然失败.如果我删除了:protocol => 'https',规范也失败了:
ActionController::RoutingError: No route matches "/subscription"
(未记录?)解决方案是简单地包含整个虚拟 URL,如下所示:
it "recognizes and generates #show" do
{ :get => "https://test.host/subscription" }.should route_to(:controller => "subscriptions", :action => "show")
end
Run Code Online (Sandbox Code Playgroud)