Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

89 lines (80 sloc) 2.5 kb
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha/setup'
class StubClassMethodDefinedOnSuperclassTest < Test::Unit::TestCase
include AcceptanceTest
def setup
setup_acceptance_test
end
def teardown
teardown_acceptance_test
end
def test_should_stub_public_method_and_leave_it_unchanged_after_test
superklass = Class.new do
class << self
def my_class_method
:original_return_value
end
public :my_class_method
end
end
klass = Class.new(superklass)
assert_snapshot_unchanged(klass) do
test_result = run_as_test do
klass.stubs(:my_class_method).returns(:new_return_value)
assert_equal :new_return_value, klass.my_class_method
end
assert_passed(test_result)
end
assert_equal :original_return_value, klass.my_class_method
end
def test_should_stub_protected_method_and_leave_it_unchanged_after_test
superklass = Class.new do
class << self
def my_class_method
:original_return_value
end
protected :my_class_method
end
end
klass = Class.new(superklass)
assert_snapshot_unchanged(klass) do
test_result = run_as_test do
klass.stubs(:my_class_method).returns(:new_return_value)
assert_equal :new_return_value, klass.send(:my_class_method)
end
assert_passed(test_result)
end
assert_equal :original_return_value, klass.send(:my_class_method)
end
def test_should_stub_private_method_and_leave_it_unchanged_after_test
superklass = Class.new do
class << self
def my_class_method
:original_return_value
end
private :my_class_method
end
end
klass = Class.new(superklass)
assert_snapshot_unchanged(klass) do
test_result = run_as_test do
klass.stubs(:my_class_method).returns(:new_return_value)
assert_equal :new_return_value, klass.send(:my_class_method)
end
assert_passed(test_result)
end
assert_equal :original_return_value, klass.send(:my_class_method)
end
def test_should_allow_including_subclasses_in_stub
superklass = Class.new do
class << self
def my_class_method
:original_return_value
end
end
end
klass = Class.new(superklass)
superklass.stubs(:my_class_method).including_subclasses.returns(:new_return_value)
assert_equal :new_return_value, klass.my_class_method
end
end
Jump to Line
Something went wrong with that request. Please try again.