ruby-on-rails - 如何使用 rspec 在路由规范中指定 https 协议(protocol)?

标签 ruby-on-rails rspec rspec-rails specifications

在我的路线文件中,我有:

resources :subscription, :only => [:show], :constraints => {:protocol => "https"}

我正在尝试为这条路线添加一个规范,如下所示:
it "recognizes and generates #show" do
  { :get => "/subscription", :protocol => 'https' }.should route_to(:controller => "subscriptions", :action => "show")
end

但是,规范仍然失败。
如果我删除 :protocol => 'https' ,规范也失败了:

Action Controller ::路由错误:
没有路线匹配“/订阅”

最佳答案

(未记录的?)解决方案是简单地包含一个完整的虚拟 url,如下所示:

it "recognizes and generates #show" do
  { :get => "https://test.host/subscription" }.should route_to(:controller => "subscriptions", :action => "show")
end

我从 this ticket 中发现的和 this changeset .

关于ruby-on-rails - 如何使用 rspec 在路由规范中指定 https 协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7317761/

相关文章:

ruby-on-rails - 在模型的属性中包含字符串插值

ruby-on-rails - Controller 规范未知关键字 : id

ruby-on-rails - Michael Hartl Rails Tutorial 第 7 章错误 Action not found in UsersController

ruby-on-rails - 否定包含期望的自定义​​ RSpec 匹配器

ruby-on-rails - 除非在 Rails 中播种时保存了父级错误,否则无法调用 create

ruby-on-rails - 使用机架中间件捕获无效的 JSON 解析错误

ruby-on-rails - 无法在Mac OS Catalina上安装Rails

ruby - rspec newb 不明白如何满足 "before"方法

ruby-on-rails - zip/zip (LoadError) - 破坏防护或 rails 4.0

ruby-on-rails - Rails 教程 : Chapter 8. 1.5 错误(使用闪现消息呈现; list 8.11 和 8.12)