Ho scritto un piccolo programma che utilizza Mechanize per attraversare un sito.Come testare un'applicazione ruby che utilizza mechanize
Voglio scrivere test per questo, ma non voglio che acceda effettivamente al sito ogni volta che eseguo i test. Mi piacerebbe prendere in giro internet, in modo che quando si reca in qualche sito, restituisca semplicemente i risultati memorizzati.
Ecco un piccolo esempio, finta il proposito di mio codice era quello di tirare fuori i collegamenti della home page di Google, in modo da scrivere un test per assicurarsi il primo anello mio codice trova ha il testo "Immagini". Potrei scrivere qualcosa del genere:
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
Come faccio rido google.com in modo da poter testare my_code_to_find_links senza tutto il sovraccarico di realtà l'accesso a internet?
grazie -Josh
Grazie, questo ha funzionato per me. Ecco una soluzione che mostra l'esempio di lavoro: http://github.com/JoshCheek/Play/tree/master/mocking-the-internet/ –