如何设置对Rails系统测试的充气

时间:2019-07-02 14:12:30

标签: ruby-on-rails mocking system-testing

我正在尝试设置puff-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 :(得分:0)

IIRC puffing-billy不会为系统测试安装帮助程序,因此您需要通过Billy名称空间访问代理

ZoneId

此外,系统测试会覆盖Billy.proxy.stub(...) current_driver javascript_driver', driven_by`

, etc so you need to specify the driver you want to use via

注意:我不在我的主计算机上,所以这一切都不在我的脑海,也许不是100%正确,但应该使您走上正确的道路。