Permalink
Browse files

Added solution that shows how to mock the internet

  • Loading branch information...
1 parent 5b6ff65 commit 1eda1bb8c27e59fbd67be29b466e8d8c4fe0a4e1 @JoshCheek JoshCheek committed Jul 21, 2010
Showing with 63 additions and 0 deletions.
  1. +47 −0 mocking-the-internet/Readme.mdown
  2. +16 −0 mocking-the-internet/mock-the-internet.rb
@@ -0,0 +1,47 @@
+Description
+===========
+
+This code shows how to mock the internet, based on an answer that worked
+for me to [this stack overflow question](http://stackoverflow.com/questions/2151827/how-to-test-a-ruby-application-which-uses-mechanize/3295334#3295334).
+
+Usage
+=====
+
+`$ ruby mock-the-internet.rb`
+
+
+Dependencies
+============
+
+[mechanize](http://rubygems.org/gems/mechanize)
+[fakeweb](http://rubygems.org/gems/fakeweb)
+
+
+
+---------------------------------------
+
+**This code is unmaintained.**
+
+_If you do something interesting with it, let me know so I can be happy._
+
+---------------------------------------
+
+Copyright (c) 2010 Joshua Cheek
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
@@ -0,0 +1,16 @@
+require 'rubygems'
+require 'mechanize'
+require 'test/unit'
+require 'fakeweb'
+
+def my_code_to_find_links
+ Mechanize.new.get('http://www.google.com').links
+end
+
+class TestGoogle < Test::Unit::TestCase
+ def test_should_pass
+ FakeWeb.register_uri :get , "http://www.google.com" , :body => '<a>Images</a> <a>Video</a>' , :content_type => "text/html"
+ assert_equal 'Images' , my_code_to_find_links.first.text
+ end
+end
+

0 comments on commit 1eda1bb

Please sign in to comment.