2

내가카피 바라를 사용하고 대 셀레늄를 호출합니다.Stubing Google 지역 <strong>셀레늄</strong> 및/또는 스터 빙 프레임 워크로 <strong>카피 바라 - 웹킷</strong> 드라이버와 Webmock와 카피 바라 - 웹킷

셀렌 (firefox)을 사용하여 Google지도 (장소) 자동 완성 입력을 실행하면 브라우저가 Google에 실제 전화를 걸고 JSON을 장소 구성 요소와 함께 수신합니다.

capybara-webkit 드라이버 (muuuuch 빠름)를 변경하여 동일한 작업을 수행 할 때 외부 요청을 스텁해야한다는 웹 메시지가 표시됩니다.

누군가 두 사람의 차이점을 설명해 주실 수 있습니까?

참고 : 나는 ... 로컬 서버로 통화가 가능하도록 WebMock.disable_net_connect!(:allow_localhost => true)을 설정

편집 : WebMock 같은

도구는 훌륭하지만, 자바 스크립트를 테스트 할 때, 그것은 그을로드 별도의 브라우저 프로세스의 페이지가 아니라 Ruby 테스트 프로세스입니다. 이는 빌드 서버에 대한 요청이 Net :: HTTP를 통해 으로 진행되지 않는다는 것을 의미합니다. 요청 파이어 폭스 또는 카피 바라 - 웹킷에서 오는, 그 도구는이 설명

인용 http://robots.thoughtbot.com/using-capybara-to-test-javascript-that-makes-http

에서 HTTP 트래픽을 라우팅하도록 미약 한 시도 멋지게 모르고 왜 지불 시스템에 일부 호출 (스텁 수) 레일 컨트롤러 필요가 수행하고 아약스하지 않는 이유는 파이어 폭스 구글에 도달하고 웹킷은 스텁

해결을 요구하는 이유,하지만 설명하지 않습니다

TL; 유지 : 셀레늄 및 외부 API를

내가 JS/브라우저 외부 호출에 사용되는 피고 - 빌리와 조롱 시도에 아약스 전화를해야 시험에 실제 전화를 걸하지만 "잘 협조하지 않는이 하나 "Webmock과 함께. 또한 나는 WebMock으로 작성된 지불 시스템 alredy에 대해 25 개의 스텁을 가지고있어 전환 할 방법이 없습니다.

VRC를 레코딩 프레임 워크로 사용해 보았지만 응용 프로그램에서 작성한 호출에 대해서도 마찬가지입니다 (Ruby NET 결국 라이브러리)

는 단순히 사용하여 AJAX API 응답을 필요로 테스트 이들 부부 계속 실행하기로 결정 파이어 폭스를 시작 셀레늄 드라이버를하고 이러한 경고는하지 증가하는

#spec_helper 
... 
WebMock.disable_net_connect!(:allow_localhost => true) # Ask to stub all requests except to localhost 
... 

# Use headless capybara-webkit that is way faster! 
Capybara.javascript_driver = :webkit 
config.before(:each, js: true) do 
    ... 
end 

# And when you need :selenium and firefox mark the spec with :force_selenium => true 
config.before(:each, force_selenium: true) do 
    Capybara.current_driver = :selenium 
end 

답변

0

gMaps 겠다는 호출을 webmock에서부터, 그러나 capybara-webkit 그 자체에서, 당신은 행동 f를 선언하기를 바란다. 또는 다음과 같이 명시 적으로 호스트에 액세스 할 수 있습니다.

Capybara::Webkit.configure do |config|          
    config.allow_url("fonts.googleapis.com") 
    config.allow_url("www.sandbox.paypal.com") 
    config.allow_url("altfarm.mediaplex.com") 
end