Skip to content

Commit

Permalink
As of Ruby v2.2, nil is frozen so these tests are irrelevant.
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
floehopper committed Mar 2, 2015
1 parent 516f17c commit a65ea1e
Showing 1 changed file with 35 additions and 33 deletions.
68 changes: 35 additions & 33 deletions test/acceptance/stubbing_nil_test.rb
Expand Up @@ -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

0 comments on commit a65ea1e

Please sign in to comment.