Я написал небольшую программу, которая использует 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 liks 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
Как мне высмеять google.com, чтобы я мог тестировать my_code_to_find_links без всех накладных расходов на фактический доступ в Интернет?
спасибо -Josh