From a65ea1ed3dce43cbc2cc16b3660afd2cce3db33e Mon Sep 17 00:00:00 2001 From: James Mead Date: Mon, 2 Mar 2015 19:37:21 +0000 Subject: [PATCH] As of Ruby v2.2, nil is frozen so these tests are irrelevant. In all these scenarios in the latest versions of Ruby, a `Mocha::StubbingError` will be raised with the message: "can't stub method on frozen object: nil". This behaviour is already tested in the more generic `StubbingFrozenObjectTest` and so it's safe to ignore these tests for the relevant versions of Ruby. --- test/acceptance/stubbing_nil_test.rb | 68 +++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/test/acceptance/stubbing_nil_test.rb b/test/acceptance/stubbing_nil_test.rb index ac163e7..f8c55cd 100644 --- a/test/acceptance/stubbing_nil_test.rb +++ b/test/acceptance/stubbing_nil_test.rb @@ -13,47 +13,49 @@ def teardown teardown_acceptance_test end - def test_should_allow_stubbing_method_on_nil - Mocha::Configuration.allow(:stubbing_method_on_nil) - test_result = run_as_test do - nil.stubs(:stubbed_method) + if RUBY_VERSION < '2.2.0' + def test_should_allow_stubbing_method_on_nil + Mocha::Configuration.allow(:stubbing_method_on_nil) + test_result = run_as_test do + nil.stubs(:stubbed_method) + end + assert_passed(test_result) + assert !@logger.warnings.include?("stubbing method on nil: nil.stubbed_method") end - assert_passed(test_result) - assert !@logger.warnings.include?("stubbing method on nil: nil.stubbed_method") - end - def test_should_warn_on_stubbing_method_on_nil - Mocha::Configuration.warn_when(:stubbing_method_on_nil) - test_result = run_as_test do - nil.stubs(:stubbed_method) + def test_should_warn_on_stubbing_method_on_nil + Mocha::Configuration.warn_when(:stubbing_method_on_nil) + test_result = run_as_test do + nil.stubs(:stubbed_method) + end + assert_passed(test_result) + assert @logger.warnings.include?("stubbing method on nil: nil.stubbed_method") end - assert_passed(test_result) - assert @logger.warnings.include?("stubbing method on nil: nil.stubbed_method") - end - def test_should_prevent_stubbing_method_on_nil - Mocha::Configuration.prevent(:stubbing_method_on_nil) - test_result = run_as_test do - nil.stubs(:stubbed_method) + def test_should_prevent_stubbing_method_on_nil + Mocha::Configuration.prevent(:stubbing_method_on_nil) + test_result = run_as_test do + nil.stubs(:stubbed_method) + end + assert_failed(test_result) + assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") end - assert_failed(test_result) - assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") - end - def test_should_default_to_prevent_stubbing_method_on_non_mock_object - test_result = run_as_test do - nil.stubs(:stubbed_method) + def test_should_default_to_prevent_stubbing_method_on_non_mock_object + test_result = run_as_test do + nil.stubs(:stubbed_method) + end + assert_failed(test_result) + assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") end - assert_failed(test_result) - assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method") - end - def test_should_allow_stubbing_method_on_non_nil_object - Mocha::Configuration.prevent(:stubbing_method_on_nil) - object = Object.new - test_result = run_as_test do - object.stubs(:stubbed_method) + def test_should_allow_stubbing_method_on_non_nil_object + Mocha::Configuration.prevent(:stubbing_method_on_nil) + object = Object.new + test_result = run_as_test do + object.stubs(:stubbed_method) + end + assert_passed(test_result) end - assert_passed(test_result) end end