簡體   English   中英

如何阻止RSpec和Capybara的外部連接?

[英]How can I block external connections with RSpec & Capybara?

在我的Rails項目中,我想編寫測試非理想條件,如缺乏互聯網連接或超時。 例如,我正在使用gem來聯系API,並且如果我的應用程序和外部API之間存在連接問題,我希望確保正確處理錯誤。

我已經可以通過使用VCR制作夾具並從“盒式磁帶”中刪除響應來完成此操作。 但是,這有缺點:

  • 它必須手動完成。
  • 如果我和一個團隊(我是)一起工作,那么錄音帶就無法被監控。

如何在我的RSpec測試中簡單地創建一個塊來阻止外部連接,模擬缺少互聯網連接?

根據這個思想機器人的文章

https://robots.thoughtbot.com/how-to-stub-external-services-in-tests#disable-all-remote-connections

# spec/spec_helper.rb
require 'webmock/rspec'
WebMock.disable_net_connect!(allow_localhost: true)

我從來沒有試過這樣做,但也許你可以使用webmock來刪除所有請求。

before do 
  stub_request(:any, /.*/).to_return(body: "errors", status: 422)
end

有關存根外部服務的更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM