我編寫了一個使用機械化來遍歷網站的小程序。如何測試使用機械化的紅寶石應用程序
我想爲它編寫的測試,但不希望它真正去登錄到網站我每次運行測試時間。我想嘲笑互聯網,所以當它進入某個網站時,它只是返回存儲的結果。
這裏是一個小例子,假裝我的代碼的目的是爲了拉動鏈接關閉谷歌主頁的,所以我寫一個測試,以確保第一個鏈接我的代碼發現有文字「圖像」。我可能會寫這樣的事:
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
謝謝,這對我有用。下面是一個顯示工作示例的解決方案:http://github.com/JoshCheek/Play/tree/master/mocking-the-internet/ – 2010-07-21 05:13:36