Rspec/Capybara/Poltergeist:如何存根URL?
Rspec/Capybara/Poltergeist: How to stub the URL?
对于我的测试,我想 stub/fake 测试正在使用的 URL,以便在 Rails 中我的 request.host
显示为除 'www.example.com'
在我的研究中,大多数人建议更改水豚的 app_host
,但这仅在您使用默认驱动程序时有效。使用 Poltergeist 时,它实际上会转到 URL.
还有什么我可以用的吗?
使用 Capybara/Poltergeist 时,您正在进行测试完整堆栈的功能测试。这样做时你不应该尝试 stub/mock 任何东西(也许你想要一个控制器规范?)。
此外,如果不使用默认的机架测试驱动程序,您应该会在应用中看到 request.host 的“127.0.0.1”(而不是 www.example.com)。您可以将 Capybara.app_host 更改为您想要的任何内容,但随后需要确保您的本地 DNS 将其解析为 127.0.0.1(/etc/hosts 条目等)。大多数 CI 系统还允许您指定 DNS 解析 - https://circleci.com/docs/configuration/#hosts
对于我的测试,我想 stub/fake 测试正在使用的 URL,以便在 Rails 中我的 request.host
显示为除 'www.example.com'
在我的研究中,大多数人建议更改水豚的 app_host
,但这仅在您使用默认驱动程序时有效。使用 Poltergeist 时,它实际上会转到 URL.
还有什么我可以用的吗?
使用 Capybara/Poltergeist 时,您正在进行测试完整堆栈的功能测试。这样做时你不应该尝试 stub/mock 任何东西(也许你想要一个控制器规范?)。
此外,如果不使用默认的机架测试驱动程序,您应该会在应用中看到 request.host 的“127.0.0.1”(而不是 www.example.com)。您可以将 Capybara.app_host 更改为您想要的任何内容,但随后需要确保您的本地 DNS 将其解析为 127.0.0.1(/etc/hosts 条目等)。大多数 CI 系统还允许您指定 DNS 解析 - https://circleci.com/docs/configuration/#hosts