【发布时间】:2021-07-09 14:09:58
【问题描述】:
我的规格不合格,当我去检查它们时,所有请求都发送到http://www.example.com。所以对我来说似乎很明显,有些东西正在覆盖默认主机,但是当我为example.com 的实例使用 grep 应用程序时,我找不到任何导致它在那里直接请求的东西,相反,我有两个地方明确地将请求定向到 localhost
spec/rails_helper.rb
config.before(:each) do
host! "https://localhost:3000"
end
config/environments/test.rb
Rails.application.routes.default_url_options[:host] = 'localhost:3000'
关于什么可以覆盖这一点以及我如何更积极地强制路由助手使用 localhost 作为主机的任何想法?
【问题讨论】:
-
在集成测试中设置
default_url_options存在一个长期存在的(古老的)问题(例如github.com/rails/rails/issues/546),因为ActionDispatch::IntegrationTest忽略了您期望设置默认选项的所有合理方式.大多数建议的解决方案都建议根据您使用的 Rails 版本以一种或另一种方式对ActionDispatch进行猴子修补。 -
@rmlockerd 哇好找!如果你想基本上把它写成答案,我会接受
标签: ruby-on-rails rspec