mocha 0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +3 -0
- data/README +148 -0
- data/lib/auto_mocha.rb +1 -0
- data/lib/auto_mocha/auto_mock.rb +54 -0
- data/lib/auto_mocha/mock_class.rb +38 -0
- data/lib/mocha.rb +1 -0
- data/lib/mocha/expectation.rb +116 -0
- data/lib/mocha/infinite_range.rb +27 -0
- data/lib/mocha/inspect.rb +37 -0
- data/lib/mocha/metaclass.rb +7 -0
- data/lib/mocha/mock.rb +30 -0
- data/lib/mocha/mock_methods.rb +55 -0
- data/lib/mocha/pretty_parameters.rb +28 -0
- data/lib/stubba.rb +2 -0
- data/lib/stubba/any_instance_method.rb +31 -0
- data/lib/stubba/class_method.rb +61 -0
- data/lib/stubba/instance_method.rb +22 -0
- data/lib/stubba/object.rb +77 -0
- data/lib/stubba/stubba.rb +27 -0
- data/lib/stubba/test_case.rb +65 -0
- data/test/all_tests.rb +100 -0
- data/test/auto_mocha/auto_mock_test.rb +85 -0
- data/test/auto_mocha/mock_class_test.rb +179 -0
- data/test/auto_mock_acceptance_test.rb +36 -0
- data/test/method_definer.rb +18 -0
- data/test/mocha/expectation_test.rb +216 -0
- data/test/mocha/infinite_range_test.rb +50 -0
- data/test/mocha/inspect_test.rb +79 -0
- data/test/mocha/mock_methods_test.rb +141 -0
- data/test/mocha/mock_test.rb +64 -0
- data/test/mocha/pretty_parameters_test.rb +32 -0
- data/test/mocha_acceptance_test.rb +112 -0
- data/test/stubba/any_instance_method_test.rb +113 -0
- data/test/stubba/class_method_test.rb +149 -0
- data/test/stubba/instance_method_test.rb +97 -0
- data/test/stubba/object_test.rb +147 -0
- data/test/stubba/stubba_test.rb +62 -0
- data/test/stubba/test_case_test.rb +41 -0
- data/test/stubba_acceptance_test.rb +107 -0
- data/test/stubba_integration_test.rb +59 -0
- data/test/stubba_replacer.rb +13 -0
- data/test/test_helper.rb +4 -0
- metadata +91 -0
@@ -0,0 +1,113 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
+
require 'method_definer'
|
3
|
+
require 'mocha/mock'
|
4
|
+
|
5
|
+
require 'stubba/any_instance_method'
|
6
|
+
|
7
|
+
class AnyInstanceMethodTest < Test::Unit::TestCase
|
8
|
+
|
9
|
+
include Stubba
|
10
|
+
include Mocha
|
11
|
+
|
12
|
+
def test_should_hide_original_method
|
13
|
+
klass = Class.new { def method_x; end }
|
14
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
15
|
+
hidden_method_x = method.hidden_method.to_sym
|
16
|
+
|
17
|
+
method.hide_original_method
|
18
|
+
|
19
|
+
assert klass.method_defined?(hidden_method_x)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_should_not_hide_original_method_if_it_is_not_defined
|
23
|
+
klass = Class.new
|
24
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
25
|
+
hidden_method_x = method.hidden_method.to_sym
|
26
|
+
|
27
|
+
method.hide_original_method
|
28
|
+
|
29
|
+
assert_equal false, klass.method_defined?(hidden_method_x)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_should_define_a_new_method
|
33
|
+
klass = Class.new { def method_x; end }
|
34
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
35
|
+
mocha = Mock.new
|
36
|
+
mocha.expects(:method_x).with(:param1, :param2).returns(:result)
|
37
|
+
any_instance = Mock.new(:mocha => mocha)
|
38
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
39
|
+
|
40
|
+
method.define_new_method
|
41
|
+
|
42
|
+
instance = klass.new
|
43
|
+
result = instance.method_x(:param1, :param2)
|
44
|
+
|
45
|
+
assert_equal :result, result
|
46
|
+
mocha.verify
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_should_restore_original_method
|
50
|
+
klass = Class.new { def method_x; end }
|
51
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
52
|
+
hidden_method_x = method.hidden_method.to_sym
|
53
|
+
klass.send(:define_method, hidden_method_x, Proc.new { :original_result })
|
54
|
+
|
55
|
+
method.restore_original_method
|
56
|
+
|
57
|
+
instance = klass.new
|
58
|
+
assert_equal :original_result, instance.method_x
|
59
|
+
assert !klass.method_defined?(hidden_method_x)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_should_not_restore_original_method_if_hidden_method_not_defined
|
63
|
+
klass = Class.new { def method_x; :new_result; end }
|
64
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
65
|
+
|
66
|
+
method.restore_original_method
|
67
|
+
|
68
|
+
instance = klass.new
|
69
|
+
assert_equal :new_result, instance.method_x
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_should_call_remove_new_method
|
73
|
+
klass = Class.new { def method_x; end }
|
74
|
+
any_instance = Mock.new(:reset_mocha => nil)
|
75
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
76
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
77
|
+
method.replace_instance_method(:restore_original_method) { }
|
78
|
+
method.define_instance_accessor(:remove_called)
|
79
|
+
method.replace_instance_method(:remove_new_method) { self.remove_called = true }
|
80
|
+
|
81
|
+
method.unstub
|
82
|
+
|
83
|
+
assert method.remove_called
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_should_call_restore_original_method
|
87
|
+
klass = Class.new { def method_x; end }
|
88
|
+
any_instance = Mock.new(:reset_mocha => nil)
|
89
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
90
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
91
|
+
method.replace_instance_method(:remove_new_method) { }
|
92
|
+
method.define_instance_accessor(:restore_called)
|
93
|
+
method.replace_instance_method(:restore_original_method) { self.restore_called = true }
|
94
|
+
|
95
|
+
method.unstub
|
96
|
+
|
97
|
+
assert method.restore_called
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_should_call_reset_mocha
|
101
|
+
klass = Class.new { def method_x; end }
|
102
|
+
any_instance = Mock.new(:reset_mocha => nil)
|
103
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
104
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
105
|
+
method.replace_instance_method(:remove_new_method) { }
|
106
|
+
method.replace_instance_method(:restore_original_method) { }
|
107
|
+
|
108
|
+
method.unstub
|
109
|
+
|
110
|
+
any_instance.verify(:reset_mocha)
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
+
require 'method_definer'
|
3
|
+
require 'mocha/mock'
|
4
|
+
|
5
|
+
require 'stubba/class_method'
|
6
|
+
|
7
|
+
class ClassMethodTest < Test::Unit::TestCase
|
8
|
+
|
9
|
+
include Stubba
|
10
|
+
include Mocha
|
11
|
+
|
12
|
+
def test_should_provide_hidden_version_of_method_name
|
13
|
+
method = ClassMethod.new(nil, :original_method_name)
|
14
|
+
assert_equal '__stubba__original_method_name__stubba__', method.hidden_method
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_should_provide_hidden_version_of_method_name_with_question_mark
|
18
|
+
method = ClassMethod.new(nil, :original_method_name?)
|
19
|
+
assert_equal '__stubba__original_method_name_question_mark__stubba__', method.hidden_method
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_should_provide_hidden_version_of_method_name_with_exclamation_mark
|
23
|
+
method = ClassMethod.new(nil, :original_method_name!)
|
24
|
+
assert_equal '__stubba__original_method_name_exclamation_mark__stubba__', method.hidden_method
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_should_hide_original_method
|
28
|
+
klass = Class.new { def self.method_x; end }
|
29
|
+
method = ClassMethod.new(klass, :method_x)
|
30
|
+
hidden_method_x = method.hidden_method
|
31
|
+
|
32
|
+
method.hide_original_method
|
33
|
+
|
34
|
+
assert klass.respond_to?(hidden_method_x)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_should_not_hide_original_method_if_method_not_defined
|
38
|
+
klass = Class.new
|
39
|
+
method = ClassMethod.new(klass, :method_x)
|
40
|
+
hidden_method_x = method.hidden_method
|
41
|
+
|
42
|
+
method.hide_original_method
|
43
|
+
|
44
|
+
assert_equal false, klass.respond_to?(hidden_method_x)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_should_define_a_new_method_which_should_call_mocha_method_missing
|
48
|
+
klass = Class.new { def self.method_x; end }
|
49
|
+
mocha = Mock.new
|
50
|
+
klass.define_instance_method(:mocha) { mocha }
|
51
|
+
mocha.expects(:method_x).with(:param1, :param2).returns(:result)
|
52
|
+
method = ClassMethod.new(klass, :method_x)
|
53
|
+
|
54
|
+
method.define_new_method
|
55
|
+
result = klass.method_x(:param1, :param2)
|
56
|
+
|
57
|
+
assert_equal :result, result
|
58
|
+
mocha.verify
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_should_remove_new_method
|
62
|
+
klass = Class.new { def self.method_x; end }
|
63
|
+
method = ClassMethod.new(klass, :method_x)
|
64
|
+
|
65
|
+
method.remove_new_method
|
66
|
+
|
67
|
+
assert_equal false, klass.respond_to?(:method_x)
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_should_restore_original_method
|
71
|
+
klass = Class.new { def self.method_x; end }
|
72
|
+
method = ClassMethod.new(klass, :method_x)
|
73
|
+
hidden_method_x = method.hidden_method.to_sym
|
74
|
+
klass.define_instance_method(hidden_method_x) { :original_result }
|
75
|
+
|
76
|
+
method.restore_original_method
|
77
|
+
|
78
|
+
assert_equal :original_result, klass.method_x
|
79
|
+
assert !klass.respond_to?(hidden_method_x)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_should_not_restore_original_method_if_hidden_method_is_not_defined
|
83
|
+
klass = Class.new { def self.method_x; :new_result; end }
|
84
|
+
method = ClassMethod.new(klass, :method_x)
|
85
|
+
|
86
|
+
method.restore_original_method
|
87
|
+
|
88
|
+
assert_equal :new_result, klass.method_x
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_should_call_hide_original_method
|
92
|
+
klass = Class.new { def self.method_x; end }
|
93
|
+
method = ClassMethod.new(klass, :method_x)
|
94
|
+
method.define_instance_accessor(:hide_called)
|
95
|
+
method.replace_instance_method(:hide_original_method) { self.hide_called = true }
|
96
|
+
|
97
|
+
method.stub
|
98
|
+
|
99
|
+
assert method.hide_called
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_should_call_define_new_method
|
103
|
+
klass = Class.new { def self.method_x; end }
|
104
|
+
method = ClassMethod.new(klass, :method_x)
|
105
|
+
method.define_instance_accessor(:define_called)
|
106
|
+
method.replace_instance_method(:define_new_method) { self.define_called = true }
|
107
|
+
|
108
|
+
method.stub
|
109
|
+
|
110
|
+
assert method.define_called
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_should_call_remove_new_method
|
114
|
+
klass = Class.new { def self.method_x; end }
|
115
|
+
klass.define_instance_method(:reset_mocha) { }
|
116
|
+
method = ClassMethod.new(klass, :method_x)
|
117
|
+
method.define_instance_accessor(:remove_called)
|
118
|
+
method.replace_instance_method(:remove_new_method) { self.remove_called = true }
|
119
|
+
|
120
|
+
method.unstub
|
121
|
+
|
122
|
+
assert method.remove_called
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_should_call_restore_original_method
|
126
|
+
klass = Class.new { def self.method_x; end }
|
127
|
+
klass.define_instance_method(:reset_mocha) { }
|
128
|
+
method = ClassMethod.new(klass, :method_x)
|
129
|
+
method.define_instance_accessor(:restore_called)
|
130
|
+
method.replace_instance_method(:restore_original_method) { self.restore_called = true }
|
131
|
+
|
132
|
+
method.unstub
|
133
|
+
|
134
|
+
assert method.restore_called
|
135
|
+
end
|
136
|
+
|
137
|
+
def test_should_call_reset_mocha
|
138
|
+
klass = Class.new { def self.method_x; end }
|
139
|
+
klass.define_instance_accessor(:reset_called)
|
140
|
+
klass.define_instance_method(:reset_mocha) { self.reset_called = true }
|
141
|
+
method = ClassMethod.new(klass, :method_x)
|
142
|
+
method.replace_instance_method(:restore_original_method) { }
|
143
|
+
|
144
|
+
method.unstub
|
145
|
+
|
146
|
+
assert klass.reset_called
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
+
require 'method_definer'
|
3
|
+
|
4
|
+
require 'stubba/instance_method'
|
5
|
+
|
6
|
+
class InstanceMethodTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
include Stubba
|
9
|
+
|
10
|
+
def test_should_exist
|
11
|
+
klass = Class.new { def method_x; end }
|
12
|
+
instance = klass.new
|
13
|
+
method = InstanceMethod.new(instance, :method_x)
|
14
|
+
|
15
|
+
assert method.exists?
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_should_not_exist
|
19
|
+
klass = Class.new { }
|
20
|
+
instance = klass.new
|
21
|
+
method = InstanceMethod.new(instance, :non_existent_method)
|
22
|
+
|
23
|
+
assert !method.exists?
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_should_raise_assertion_failed_error_when_attempting_to_stub_non_existent_method
|
27
|
+
klass = Class.new
|
28
|
+
instance = klass.new
|
29
|
+
method = InstanceMethod.new(instance, :non_existent_method)
|
30
|
+
assert_raise(Test::Unit::AssertionFailedError) { method.stub }
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_should_call_define_new_method
|
34
|
+
klass = Class.new { def method_x; end }
|
35
|
+
instance = klass.new
|
36
|
+
method = InstanceMethod.new(instance, :method_x)
|
37
|
+
method.define_instance_accessor(:define_called)
|
38
|
+
method.replace_instance_method(:define_new_method) { self.define_called = true }
|
39
|
+
|
40
|
+
method.stub
|
41
|
+
|
42
|
+
assert method.define_called
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_should_not_call_hide_original_method
|
46
|
+
klass = Class.new { def method_x; end }
|
47
|
+
instance = klass.new
|
48
|
+
method = InstanceMethod.new(instance, :method_x)
|
49
|
+
method.replace_instance_method(:define_new_method) { }
|
50
|
+
method.define_instance_accessor(:hide_called)
|
51
|
+
method.replace_instance_method(:hide_original_method) { self.hide_called = true }
|
52
|
+
|
53
|
+
method.stub
|
54
|
+
|
55
|
+
assert !method.hide_called
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_should_not_call_restore_original_method
|
59
|
+
klass = Class.new { def method_x; end }
|
60
|
+
instance = klass.new
|
61
|
+
method = InstanceMethod.new(instance, :method_x)
|
62
|
+
method.replace_instance_method(:define_new_method) { }
|
63
|
+
method.define_instance_accessor(:restore_called)
|
64
|
+
method.replace_instance_method(:restore_original_method) { self.restore_called = true }
|
65
|
+
|
66
|
+
method.unstub
|
67
|
+
|
68
|
+
assert !method.restore_called
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_should_not_call_remove_new_method
|
72
|
+
klass = Class.new { def method_x; end }
|
73
|
+
instance = klass.new
|
74
|
+
method = InstanceMethod.new(instance, :method_x)
|
75
|
+
method.replace_instance_method(:define_new_method) { }
|
76
|
+
method.define_instance_accessor(:remove_called)
|
77
|
+
method.replace_instance_method(:remove_new_method) { self.remove_called = true }
|
78
|
+
|
79
|
+
method.unstub
|
80
|
+
|
81
|
+
assert !method.remove_called
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_should_not_call_reset_mocha
|
85
|
+
klass = Class.new { def method_x; end }
|
86
|
+
instance = klass.new
|
87
|
+
instance.define_instance_accessor(:reset_called)
|
88
|
+
instance.define_instance_method(:reset_mocha) { self.reset_called = true }
|
89
|
+
method = InstanceMethod.new(instance, :method_x)
|
90
|
+
method.replace_instance_method(:define_new_method) { }
|
91
|
+
|
92
|
+
method.unstub
|
93
|
+
|
94
|
+
assert !instance.reset_called
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
@@ -0,0 +1,147 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
+
require 'stubba_replacer'
|
3
|
+
|
4
|
+
require 'stubba/object'
|
5
|
+
|
6
|
+
class ObjectTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
include Stubba
|
9
|
+
include Mocha
|
10
|
+
|
11
|
+
def test_should_build_mocha
|
12
|
+
instance = Object.new
|
13
|
+
mocha = instance.mocha
|
14
|
+
assert_not_nil mocha
|
15
|
+
assert mocha.is_a?(Mock)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_should_reuse_existing_mocha
|
19
|
+
instance = Object.new
|
20
|
+
mocha_1 = instance.mocha
|
21
|
+
mocha_2 = instance.mocha
|
22
|
+
assert_equal mocha_1, mocha_2
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_should_reset_mocha
|
26
|
+
instance = Object.new
|
27
|
+
assert_nil instance.reset_mocha
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_should_stub_instance_method
|
31
|
+
instance = Object.new
|
32
|
+
stubba = Mock.new
|
33
|
+
stubba.expects(:stub).with(InstanceMethod.new(instance, :method1))
|
34
|
+
replace_stubba(stubba) do
|
35
|
+
instance.expects(:method1)
|
36
|
+
end
|
37
|
+
stubba.verify(:stub)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_should_build_and_store_expectation
|
41
|
+
instance = Object.new
|
42
|
+
stubba = Mock.new(:stub => nil)
|
43
|
+
replace_stubba(stubba) do
|
44
|
+
expectation = instance.expects(:method1)
|
45
|
+
assert_equal [expectation], instance.mocha.expectations
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_should_verify_expectations
|
50
|
+
instance = Object.new
|
51
|
+
stubba = Mock.new(:stub => nil)
|
52
|
+
replace_stubba(stubba) do
|
53
|
+
instance.expects(:method1).with(:value1, :value2)
|
54
|
+
end
|
55
|
+
assert_raise(Test::Unit::AssertionFailedError) { instance.verify }
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_should_build_any_instance_object
|
59
|
+
klass = Class.new
|
60
|
+
any_instance = klass.any_instance
|
61
|
+
assert_not_nil any_instance
|
62
|
+
assert any_instance.is_a?(Class::AnyInstance)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_should_return_same_any_instance_object
|
66
|
+
klass = Class.new
|
67
|
+
any_instance_1 = klass.any_instance
|
68
|
+
any_instance_2 = klass.any_instance
|
69
|
+
assert_equal any_instance_1, any_instance_2
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_should_stub_class_method
|
73
|
+
klass = Class.new
|
74
|
+
stubba = Mock.new
|
75
|
+
stubba.expects(:stub).with(ClassMethod.new(klass, :method1))
|
76
|
+
replace_stubba(stubba) do
|
77
|
+
klass.expects(:method1)
|
78
|
+
end
|
79
|
+
stubba.verify(:stub)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_should_build_and_store_class_method_expectation
|
83
|
+
klass = Class.new
|
84
|
+
stubba = Mock.new(:stub => nil)
|
85
|
+
replace_stubba(stubba) do
|
86
|
+
expectation = klass.expects(:method1)
|
87
|
+
assert_equal [expectation], klass.mocha.expectations
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_should_stub_module_method
|
92
|
+
mod = Module.new
|
93
|
+
stubba = Mock.new
|
94
|
+
stubba.expects(:stub).with(ClassMethod.new(mod, :method1))
|
95
|
+
replace_stubba(stubba) do
|
96
|
+
mod.expects(:method1)
|
97
|
+
end
|
98
|
+
stubba.verify(:stub)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_should_build_and_store_module_method_expectation
|
102
|
+
mod = Module.new
|
103
|
+
stubba = Mock.new(:stub => nil)
|
104
|
+
replace_stubba(stubba) do
|
105
|
+
expectation = mod.expects(:method1)
|
106
|
+
assert_equal [expectation], mod.mocha.expectations
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_should_use_stubba_instance_method_for_object
|
111
|
+
assert_equal InstanceMethod, Object.new.stubba_method
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_should_use_stubba_class_method_for_module
|
115
|
+
assert_equal ClassMethod, Module.new.stubba_method
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_should_use_stubba_class_method_for_class
|
119
|
+
assert_equal ClassMethod, Class.new.stubba_method
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_should_use_stubba_class_method_for_any_instance
|
123
|
+
assert_equal AnyInstanceMethod, Class::AnyInstance.new(nil).stubba_method
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_should_stub_self_for_object
|
127
|
+
object = Object.new
|
128
|
+
assert_equal object, object.stubba_object
|
129
|
+
end
|
130
|
+
|
131
|
+
def test_should_stub_self_for_module
|
132
|
+
mod = Module.new
|
133
|
+
assert_equal mod, mod.stubba_object
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_should_stub_self_for_class
|
137
|
+
klass = Class.new
|
138
|
+
assert_equal klass, klass.stubba_object
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_should_stub_relevant_class_for_any_instance
|
142
|
+
klass = Class.new
|
143
|
+
any_instance = Class::AnyInstance.new(klass)
|
144
|
+
assert_equal klass, any_instance.stubba_object
|
145
|
+
end
|
146
|
+
|
147
|
+
end
|