ruby-on-rails - rspec 路由测试和主机

标签 ruby-on-rails ruby rspec host hostname

我看到我可以像这样用 rspec 测试路由:

get("/").should route_to("welcome#index")

但我有基于主机名或部分主机名的约束,并在多个主机名之间重定向。测试时如何指定主机名?

如何使用正确的配置运行测试?我尝试打印 root_url 并得到:

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

最佳答案

同样的错误发生在我每次运行 rspec spec/

整个错误实际上是:

Failure/Error: @user = Factory(:user)
     ActionView::Template::Error:
       Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
     # ./app/views/devise/mailer/confirmation_instructions.html.erb:5:in `_app_views_devise_mailer_confirmation_instructions_html_erb__980323237__638702928'
     # ./spec/models/campaign_spec.rb:21

下面一行:

# ./app/views/devise/mailer/confirmation_instructions.html.erb:5:in `_app_views_devise_mailer_confirmation_instructions_html_erb__980323237__638702928'

实际上给了我设计是抛出错误的暗示。

原来我没有设置

config.action_mailer.default_url_options = { :host => 'localhost:3000' }

config/environments/test.rb 中(仅在 development.rb 中)

添加配置选项清除了我的错误。 我怀疑您正在使用其他需要相同选项集的 gem。

关于ruby-on-rails - rspec 路由测试和主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7182600/

相关文章:

ruby-on-rails - 有没有更好的方法在 Rails 上的 rspec 中设置 POST 正文数据?

rspec - 在 Rspec 中使用期望匹配器

ruby-on-rails - Ruby on Rails 中的数据库架构最佳实践

ruby-on-rails - 一条匹配的路线会覆盖另一条路线,但不应该

ruby-on-rails - rails : modify form parameters before modifying the database

ruby-on-rails - Ruby Enumerable 无法在 min 函数中比较 BigDecimal NaN

ruby-on-rails - 无法使用 rspec stub 辅助方法

ruby-on-rails - 如何在simple_form 2的包装器中向输入组件添加类

ruby-on-rails - vim 中的 Ruby 语法检查

ruby-on-rails - 测试环境 - 回形针错误