Skip to content
Browse files

use stubbing instead of monkeypatching to stop tests from interfering…

… with one another. Closes #11163 [RubyRedRick]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8899 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent e32149a commit 1537aec18453907db3e67dc366eb51f11f94055d @NZKoz NZKoz committed Feb 19, 2008
Showing with 13 additions and 14 deletions.
  1. +13 −14 actionpack/test/controller/integration_test.rb
View
27 actionpack/test/controller/integration_test.rb
@@ -3,23 +3,21 @@
uses_mocha 'integration' do
-# Stub process for testing.
-module ActionController
- module Integration
- class Session
- def process(*args)
- end
-
- def generic_url_rewriter
- end
- end
+module IntegrationSessionStubbing
+ def stub_integration_session(session)
+ session.stubs(:process)
+ session.stubs(:generic_url_rewriter)
end
end
class SessionTest < Test::Unit::TestCase
+ include IntegrationSessionStubbing
+
def setup
@session = ActionController::Integration::Session.new
+ stub_integration_session(@session)
end
+
def test_https_bang_works_and_sets_truth_by_default
assert !@session.https?
@session.https!
@@ -210,11 +208,13 @@ def test_xml_http_request_override_accept
end
class IntegrationTestTest < Test::Unit::TestCase
+ include IntegrationSessionStubbing
def setup
@test = ::ActionController::IntegrationTest.new(:default_test)
@test.class.stubs(:fixture_table_names).returns([])
@session = @test.open_session
+ stub_integration_session(@session)
end
def test_opens_new_session
@@ -233,21 +233,20 @@ def test_opens_new_session
# Tests that integration tests don't call Controller test methods for processing.
# Integration tests have their own setup and teardown.
class IntegrationTestUsesCorrectClass < ActionController::IntegrationTest
+ include IntegrationSessionStubbing
def self.fixture_table_names
[]
end
def test_integration_methods_called
+ reset!
+ stub_integration_session(@integration_session)
%w( get post head put delete ).each do |verb|
assert_nothing_raised("'#{verb}' should use integration test methods") { send!(verb, '/') }
end
end
end
-# TODO
-# class MockCGITest < Test::Unit::TestCase
-# end
-
end # uses_mocha

0 comments on commit 1537aec

Please sign in to comment.
Something went wrong with that request. Please try again.