【发布时间】:2020-01-16 04:07:55
【问题描述】:
- 导轨:5.2.1
- 开箱即用的测试设置
- 以 chrome 作为驱动程序运行(正常和无头)
我正在尝试运行系统测试以访问外部服务,然后被重定向回我自己的应用程序。
在此系统测试中,如何访问正在运行的测试的完整 url?我找不到当前的 localhost 端口,因此无法将正确的重定向 url 发送到外部服务。
【问题讨论】:
标签: ruby-on-rails testing
我正在尝试运行系统测试以访问外部服务,然后被重定向回我自己的应用程序。
在此系统测试中,如何访问正在运行的测试的完整 url?我找不到当前的 localhost 端口,因此无法将正确的重定向 url 发送到外部服务。
【问题讨论】:
标签: ruby-on-rails testing
在网上搜索了一些之后,我找到了答案。
基于这个post,我添加了
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
致我的application_system_test_case.rb。
这允许所有_url 方法在系统测试中工作。
【讨论】:
application_system_test_case.rb,所以它是为每个系统测试设置的。
Rails 6。唯一对我有用的东西:
# inside a subclass of ActionDispatch::IntegrationTest or ActionDispatch::SystemTestCase
setup do
self.default_url_options = {...}
end
【讨论】: