Mechanize を使用してサイトを走査する小さなプログラムを作成しました。
テストを書きたいのですが、テストを実行するたびに実際にサイトにログオンしたくありません。インターネットをモックして、あるサイトにアクセスしたときに、保存された結果を返すだけにしたいと思います。
ここに小さな例があります。私のコードの目的は、Google ホームページからリンクを引き出すことだったので、コードが見つけた最初のリンクに「画像」というテキストが含まれていることを確認するテストを作成します。私は次のように書くかもしれません:
require 'rubygems'
require 'mechanize'
require 'test/unit'
def my_code_to_find_links
google = WWW::Mechanize.new.get('http://www.google.com')
# ...
# some code to figure out which links it wants
# ...
google.links
end
class TestGoogle < Test::Unit::TestCase
def test_first_link_is_images
assert_equal 'Images' , my_code_to_find_links.first.text
end
end
実際にインターネットにアクセスするオーバーヘッドなしで my_code_to_find_links をテストできるように、google.com をモックするにはどうすればよいですか?
ありがとう -ジョシュ