open-uriを使ったテストで対象URLをキャッシュする

インターンの増田です。

Webページを使ってテストしたいことがありますが、毎回GETしているとやっかいな問題が出てきます。

  • ページの内容が変わってしまってテストが失敗する
  • テストに時間がかかる
  • サーバがダウンしているかもしれない

そこで、テストをほとんど変更せずに、1回目のGETリクエストの結果をファイルにキャッシュしてしまうRubyのライブラリを作ってみました。

対応しているのはopen-uriによるopenメソッドです。

require 'local-uri'
String.local_uri_data_dir = '/home/masuda/test/data'

open('http://www.yahoo.co.jp', 'User-Agent' => 'xxx')  # open-uriで取得
open('http://www.yahoo.co.jp', 'User-Agent' => 'xxx')  # ローカルファイルから取得

このように、キャッシュファイルの保存先を追加するだけでOKです。

local-uri.rb

local-uri_test.rb

Bookmark and Share