Rails 系统测试:如何设置default_host_url

dav*_*man 5 testing ruby-on-rails

  • 导轨:5.2.1
  • 开箱即用的测试设置
  • 使用 chrome 作为驱动程序运行(正常和无头)

我正在尝试运行系统测试,在其中访问外部服务,然后重定向回我自己的应用程序。

在此系统测试中,如何访问正在运行的测试的完整 url?我找不到当前的 localhost 端口,因此无法将正确的重定向 URL 发送到外部服务。

dav*_*man 5

经过更多的互联网搜索后,我找到了答案。

基于这篇文章,我添加了

def setup
    Rails.application.routes.default_url_options[:host] = Capybara.current_session.server.host
    Rails.application.routes.default_url_options[:port] = Capybara.current_session.server.port
end
Run Code Online (Sandbox Code Playgroud)

给我的application_system_test_case.rb

这允许所有_url方法在系统测试中工作。