我正在尝试设置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>
。
我在这里做什么错了?
答案 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%正确,但应该使您走上正确的道路。