Как настроить Puffing-Billy для Rails System Test - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь настроить Puffing-Billy для работы с Rails System Test. Поскольку для этого используется Capybara, я попробовал все документированные решения Capybara здесь, но, похоже, он не был правильно настроен.

Системный тест генерирует application_system_test_case.rb для настроек. Вот как это выглядит:

require "test_helper"
require 'billy'

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :selenium, using: :headless_chrome, screen_size: [1400, 1400]

  Capybara.javascript_driver = :selenium_chrome_billy
  Capybara.current_driver = Capybara.javascript_driver

  WebMock.allow_net_connect!
end

И настоящий тестовый файл выглядит так:

require "application_system_test_case"

class PromotionsTest < ApplicationSystemTestCase
  include ApplicationHelper

  make_my_diffs_pretty!
  Capybara.default_max_wait_time = 3
  Capybara.configure do |config|
    config.app_host = "http://dev.myapp.com"
  end

  test 'Stub test' do
    proxy.stub('http://www.google.com/').and_return(:text => "I'm not Google!")

    visit 'http://www.google.com/'
  end
end

Но тогда, когда я запускаю тесты: NameError: undefined local variable or method 'proxy' for #<PromotionsTest:0x00007fd357450c90>.

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 02 июля 2019

IIRC puffing-billy не устанавливает помощников для системных тестов, поэтому вам необходимо получить доступ к прокси-серверу через пространство имен Billy

Billy.proxy.stub(...)

Кроме того, системные тесты переопределяют javascript_driver', current_driver , etc so you need to specify the driver you want to use via driven_by`

driven_by :selenium, using: :selenium_chrome_billy

Примечание: я не на своем главном компьютере, так что все это на макушке моей головы и может быть не на 100% правильным, но должно поставить вас на правильный путь.

...