【问题标题】:How can I verify the full url that my Rspec/Capybara test visits?如何验证我的 Rspec/Capybara 测试访问的完整 URL?
【发布时间】:2017-06-22 16:37:15
【问题描述】:

我正在尝试使用 Rspec/Capybara 来测试非 ruby​​ 应用程序。该应用程序在 docker 容器中运行,而 rspec 进程在另一个容器中运行。当我进入 rspec 容器时,我可以毫无问题地卷曲应用程序容器。但是当我运行 rspec 来测试应用程序时,它无法连接。我要做的第一件事是验证 Rspec 调用的 url,即它“访问”的内容。如何验证此网址

RSpec.feature 'user visits homepage', type: :feature do
  scenario 'default' do
    visit '/' # <- how can i print out what url this points to?
    expect(page).to have_content('test content')
  end
end

【问题讨论】:

  • 由于这本质上是基于您的设计的跨站点请求,并且您确认 curl 有效,为什么不使用 HTTP 库进行测试?

标签: ruby rspec capybara


【解决方案1】:
RSpec.feature 'user visits homepage', type: :feature do
 scenario 'default' do
  visit '/'
  puts current_url
  expect(page).to have_content('test content')
 end
end

【讨论】:

    【解决方案2】:

    假设您使用的是支持 JS 的 Capybara 驱动程序之一(selenium、poltergeist、capybara-webkit),并且设置了Capybara.run_server = false,因为您正在测试在其他地方启动的应用程序,visit '/' 将尝试连接到“ #{Capybara.app_host}/",所以无论您将 Capybara.app_host 设置为什么,它都会连接到它。

    注意:如果您使用的是 racktest 驱动程序,则根本不支持连接到远程应用程序,并且指定的任何域名都将被完全忽略。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多