インターンの増田です。
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です。