require File.join(File.dirname(__FILE__), "..", "test_helper") require 'method_definer' require 'stubba/instance_method' class InstanceMethodTest < Test::Unit::TestCase include Stubba def test_should_exist klass = Class.new { def method_x; end } instance = klass.new method = InstanceMethod.new(instance, :method_x) assert method.exists? end def test_should_not_exist klass = Class.new { } instance = klass.new method = InstanceMethod.new(instance, :non_existent_method) assert !method.exists? end def test_should_raise_assertion_failed_error_when_attempting_to_stub_non_existent_method klass = Class.new instance = klass.new method = InstanceMethod.new(instance, :non_existent_method) assert_raise(Test::Unit::AssertionFailedError) { method.stub } end def test_should_not_raise_assertion_failed_error_when_attempting_to_stub_existing_method klass = Class.new { def method_x; end } instance = klass.new method = InstanceMethod.new(instance, :method_x) assert_nothing_raised(Test::Unit::AssertionFailedError) { method.stub } end def test_should_inherit_from_class_method assert_equal ClassMethod, InstanceMethod.superclass end end