mocha 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/smart_test_case.rb +1 -1
- data/lib/smart_test_case/multiple_setup_and_teardown.rb +89 -91
- data/lib/stubba.rb +1 -1
- data/lib/stubba/instance_method.rb +1 -5
- data/lib/stubba/setup_and_teardown.rb +17 -19
- data/test/mocha/expectation_test.rb +0 -1
- data/test/mocha_test_result_integration_test.rb +1 -1
- data/test/smart_test_case/multiple_setup_and_teardown_test.rb +11 -11
- data/test/stubba/instance_method_test.rb +7 -58
- data/test/stubba/setup_and_teardown_test.rb +3 -3
- data/test/stubba_acceptance_test.rb +1 -1
- data/test/stubba_integration_test.rb +61 -24
- data/test/stubba_test_result_integration_test.rb +2 -2
- metadata +2 -2
data/Rakefile
CHANGED
data/lib/smart_test_case.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'smart_test_case/multiple_setup_and_teardown'
|
2
2
|
|
3
3
|
class Test::Unit::TestCase
|
4
|
-
include
|
4
|
+
include MultipleSetupAndTeardown unless ancestors.include?(MultipleSetupAndTeardown)
|
5
5
|
end
|
@@ -1,125 +1,123 @@
|
|
1
|
-
module
|
2
|
-
module MultipleSetupAndTeardown
|
1
|
+
module MultipleSetupAndTeardown
|
3
2
|
|
4
|
-
|
3
|
+
def self.included(base)
|
5
4
|
|
6
|
-
|
5
|
+
base.class_eval do
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
def self.method_added(symbol)
|
8
|
+
# disable until later
|
9
|
+
end
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
setup_mocha
|
19
|
-
end
|
20
|
-
end
|
21
|
-
else
|
22
|
-
define_method(:setup_new) do
|
11
|
+
if method_defined?(:setup) then
|
12
|
+
alias_method :setup_original, :setup
|
13
|
+
define_method(:setup_new) do
|
14
|
+
begin
|
15
|
+
setup_original
|
16
|
+
ensure
|
23
17
|
setup_mocha
|
24
18
|
end
|
25
19
|
end
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
else
|
38
|
-
define_method(:teardown_new) do
|
20
|
+
else
|
21
|
+
define_method(:setup_new) do
|
22
|
+
setup_mocha
|
23
|
+
end
|
24
|
+
end
|
25
|
+
alias_method :setup, :setup_new
|
26
|
+
|
27
|
+
if method_defined?(:teardown) then
|
28
|
+
alias_method :teardown_original, :teardown
|
29
|
+
define_method(:teardown_new) do
|
30
|
+
begin
|
39
31
|
teardown_mocha
|
32
|
+
ensure
|
33
|
+
teardown_original
|
40
34
|
end
|
41
35
|
end
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
36
|
+
else
|
37
|
+
define_method(:teardown_new) do
|
38
|
+
teardown_mocha
|
39
|
+
end
|
40
|
+
end
|
41
|
+
alias_method :teardown, :teardown_new
|
42
|
+
|
43
|
+
def self.method_added(method)
|
44
|
+
case method
|
45
|
+
when :setup
|
46
|
+
unless method_defined?(:setup_added)
|
47
|
+
alias_method :setup_added, :setup
|
48
|
+
define_method(:setup) do
|
49
|
+
begin
|
50
|
+
setup_new
|
51
|
+
ensure
|
52
|
+
setup_added
|
55
53
|
end
|
56
54
|
end
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
55
|
+
end
|
56
|
+
when :teardown
|
57
|
+
unless method_defined?(:teardown_added)
|
58
|
+
alias_method :teardown_added, :teardown
|
59
|
+
define_method(:teardown) do
|
60
|
+
begin
|
61
|
+
teardown_added
|
62
|
+
ensure
|
63
|
+
teardown_new
|
66
64
|
end
|
67
65
|
end
|
68
66
|
end
|
69
67
|
end
|
68
|
+
end
|
70
69
|
|
71
|
-
|
72
|
-
|
73
|
-
def setup_methods
|
74
|
-
@setup_methods ||= []
|
75
|
-
end
|
76
|
-
|
77
|
-
def teardown_methods
|
78
|
-
@teardown_methods ||= []
|
79
|
-
end
|
70
|
+
class << self
|
80
71
|
|
81
|
-
|
82
|
-
|
83
|
-
|
72
|
+
def setup_methods
|
73
|
+
@setup_methods ||= []
|
74
|
+
end
|
84
75
|
|
85
|
-
|
86
|
-
|
87
|
-
|
76
|
+
def teardown_methods
|
77
|
+
@teardown_methods ||= []
|
78
|
+
end
|
88
79
|
|
89
|
-
|
80
|
+
def add_setup_method(symbol)
|
81
|
+
setup_methods << symbol
|
82
|
+
end
|
90
83
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
child.instance_variable_set('@teardown_methods', teardown_methods.dup)
|
95
|
-
end
|
84
|
+
def add_teardown_method(symbol)
|
85
|
+
teardown_methods << symbol
|
86
|
+
end
|
96
87
|
|
97
|
-
|
98
|
-
alias_method :inherited_without_setup_and_teardown_methods, :inherited
|
99
|
-
end
|
100
|
-
alias_method :inherited, :inherited_with_setup_and_teardown_methods
|
88
|
+
private
|
101
89
|
|
90
|
+
def inherited_with_setup_and_teardown_methods(child)
|
91
|
+
inherited_without_setup_and_teardown_methods(child) if respond_to?(:inherited_without_setup_and_teardown_methods, true)
|
92
|
+
child.instance_variable_set('@setup_methods', setup_methods.dup)
|
93
|
+
child.instance_variable_set('@teardown_methods', teardown_methods.dup)
|
102
94
|
end
|
103
95
|
|
104
|
-
|
105
|
-
|
96
|
+
if respond_to?(:inherited, true)
|
97
|
+
alias_method :inherited_without_setup_and_teardown_methods, :inherited
|
106
98
|
end
|
99
|
+
alias_method :inherited, :inherited_with_setup_and_teardown_methods
|
107
100
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
101
|
+
end
|
102
|
+
|
103
|
+
def setup_mocha
|
104
|
+
self.class.class_eval { setup_methods }.each { |symbol| send(symbol) }
|
105
|
+
end
|
106
|
+
|
107
|
+
def teardown_mocha
|
108
|
+
stored_exception = nil
|
109
|
+
self.class.class_eval { teardown_methods }.reverse.each do |symbol|
|
110
|
+
begin
|
111
|
+
send(symbol)
|
112
|
+
rescue Exception => e
|
113
|
+
stored_exception ||= e
|
116
114
|
end
|
117
|
-
raise stored_exception if stored_exception
|
118
115
|
end
|
119
|
-
|
116
|
+
raise stored_exception if stored_exception
|
120
117
|
end
|
121
118
|
|
122
119
|
end
|
123
120
|
|
124
121
|
end
|
125
|
-
|
122
|
+
|
123
|
+
end
|
data/lib/stubba.rb
CHANGED
@@ -1,27 +1,25 @@
|
|
1
1
|
require 'stubba/central'
|
2
2
|
|
3
|
-
module
|
4
|
-
module SetupAndTeardown
|
3
|
+
module SetupAndTeardown
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
def self.included(base)
|
6
|
+
base.add_setup_method(:setup_stubs)
|
7
|
+
base.add_teardown_method(:teardown_stubs)
|
8
|
+
end
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
def setup_stubs
|
11
|
+
$stubba = Stubba::Central.new
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
14
|
+
def teardown_stubs
|
15
|
+
if $stubba then
|
16
|
+
begin
|
17
|
+
$stubba.verify_all { add_assertion }
|
18
|
+
ensure
|
19
|
+
$stubba.unstub_all
|
20
|
+
$stubba = nil
|
23
21
|
end
|
24
22
|
end
|
25
|
-
|
26
23
|
end
|
27
|
-
|
24
|
+
|
25
|
+
end
|
@@ -275,7 +275,6 @@ class ExpectationSimilarExpectationsTest < Test::Unit::TestCase
|
|
275
275
|
missing_expectation = MissingExpectation.new(:other_meth, @mock, [expectation]).with(1)
|
276
276
|
exception = assert_raise(Test::Unit::AssertionFailedError) { missing_expectation.verify }
|
277
277
|
assert_equal "Unexpected message :other_meth(1) sent to #{@mock.mocha_inspect}", exception.message
|
278
|
-
p exception.message
|
279
278
|
end
|
280
279
|
|
281
280
|
end
|
@@ -94,7 +94,7 @@ class MochaTestResultIntegrationTest < Test::Unit::TestCase
|
|
94
94
|
|
95
95
|
def run_test(test_result = Test::Unit::TestResult.new, &block)
|
96
96
|
test_class = Class.new(Test::Unit::TestCase) do
|
97
|
-
include
|
97
|
+
include MultipleSetupAndTeardown
|
98
98
|
include Mocha::AutoVerify
|
99
99
|
define_method(:test_me, &block)
|
100
100
|
end
|
@@ -7,7 +7,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
7
7
|
def test_should_call_added_setup
|
8
8
|
test_case = Class.new(Test::Unit::TestCase) do
|
9
9
|
define_method(:methods_called) { @methods_called ||= [] }
|
10
|
-
include
|
10
|
+
include MultipleSetupAndTeardown
|
11
11
|
add_setup_method(:added_setup)
|
12
12
|
define_method(:added_setup) { methods_called << :added_setup }
|
13
13
|
define_method(:test_method) { methods_called << :test_method }
|
@@ -22,7 +22,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
22
22
|
def test_should_call_added_teardown
|
23
23
|
test_case = Class.new(Test::Unit::TestCase) do
|
24
24
|
define_method(:methods_called) { @methods_called ||= [] }
|
25
|
-
include
|
25
|
+
include MultipleSetupAndTeardown
|
26
26
|
add_teardown_method(:added_teardown)
|
27
27
|
define_method(:added_teardown) { methods_called << :added_teardown }
|
28
28
|
define_method(:test_method) { methods_called << :test_method }
|
@@ -37,7 +37,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
37
37
|
def test_should_call_both_added_teardowns_even_if_one_raises_exception
|
38
38
|
test_case = Class.new(Test::Unit::TestCase) do
|
39
39
|
define_method(:methods_called) { @methods_called ||= [] }
|
40
|
-
include
|
40
|
+
include MultipleSetupAndTeardown
|
41
41
|
add_teardown_method(:added_teardown_1)
|
42
42
|
add_teardown_method(:added_teardown_2)
|
43
43
|
define_method(:added_teardown_1) { methods_called << :added_teardown_1 }
|
@@ -55,7 +55,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
55
55
|
test_case = Class.new(Test::Unit::TestCase) do
|
56
56
|
define_method(:methods_called) { @methods_called ||= [] }
|
57
57
|
define_method(:setup) { methods_called << :setup }
|
58
|
-
include
|
58
|
+
include MultipleSetupAndTeardown
|
59
59
|
add_setup_method(:added_setup)
|
60
60
|
define_method(:added_setup) { methods_called << :added_setup }
|
61
61
|
define_method(:test_method) { methods_called << :test_method }
|
@@ -71,7 +71,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
71
71
|
test_case = Class.new(Test::Unit::TestCase) do
|
72
72
|
define_method(:methods_called) { @methods_called ||= [] }
|
73
73
|
define_method(:teardown) { methods_called << :teardown }
|
74
|
-
include
|
74
|
+
include MultipleSetupAndTeardown
|
75
75
|
add_teardown_method(:added_teardown)
|
76
76
|
define_method(:added_teardown) { methods_called << :added_teardown }
|
77
77
|
define_method(:test_method) { methods_called << :test_method }
|
@@ -86,7 +86,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
86
86
|
def test_should_call_added_setup_and_setup_defined_after_module_included
|
87
87
|
test_case = Class.new(Test::Unit::TestCase) do
|
88
88
|
define_method(:methods_called) { @methods_called ||= [] }
|
89
|
-
include
|
89
|
+
include MultipleSetupAndTeardown
|
90
90
|
define_method(:setup) { methods_called << :setup }
|
91
91
|
add_setup_method(:added_setup)
|
92
92
|
define_method(:added_setup) { methods_called << :added_setup }
|
@@ -102,7 +102,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
102
102
|
def test_should_call_added_teardown_and_teardown_defined_after_module_included
|
103
103
|
test_case = Class.new(Test::Unit::TestCase) do
|
104
104
|
define_method(:methods_called) { @methods_called ||= [] }
|
105
|
-
include
|
105
|
+
include MultipleSetupAndTeardown
|
106
106
|
define_method(:teardown) { methods_called << :teardown }
|
107
107
|
add_teardown_method(:added_teardown)
|
108
108
|
define_method(:added_teardown) { methods_called << :added_teardown }
|
@@ -118,7 +118,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
118
118
|
def test_should_call_added_setup_and_setup_defined_in_derived_test_case
|
119
119
|
test_case = Class.new(Test::Unit::TestCase) do
|
120
120
|
define_method(:methods_called) { @methods_called ||= [] }
|
121
|
-
include
|
121
|
+
include MultipleSetupAndTeardown
|
122
122
|
add_setup_method(:added_setup)
|
123
123
|
define_method(:added_setup) { methods_called << :added_setup }
|
124
124
|
end
|
@@ -136,7 +136,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
136
136
|
def test_should_call_added_teardown_and_teardown_defined_in_derived_test_case
|
137
137
|
test_case = Class.new(Test::Unit::TestCase) do
|
138
138
|
define_method(:methods_called) { @methods_called ||= [] }
|
139
|
-
include
|
139
|
+
include MultipleSetupAndTeardown
|
140
140
|
add_teardown_method(:added_teardown)
|
141
141
|
define_method(:added_teardown) { methods_called << :added_teardown }
|
142
142
|
end
|
@@ -155,7 +155,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
155
155
|
test_case = Class.new(Test::Unit::TestCase) do
|
156
156
|
define_method(:methods_called) { @methods_called ||= [] }
|
157
157
|
include ActiveRecordTestCase
|
158
|
-
include
|
158
|
+
include MultipleSetupAndTeardown
|
159
159
|
add_setup_method(:added_setup)
|
160
160
|
define_method(:added_setup) { methods_called << :added_setup }
|
161
161
|
end
|
@@ -174,7 +174,7 @@ class MultipleSetupAndTeardownTest < Test::Unit::TestCase
|
|
174
174
|
test_case = Class.new(Test::Unit::TestCase) do
|
175
175
|
define_method(:methods_called) { @methods_called ||= [] }
|
176
176
|
include ActiveRecordTestCase
|
177
|
-
include
|
177
|
+
include MultipleSetupAndTeardown
|
178
178
|
add_teardown_method(:added_teardown)
|
179
179
|
define_method(:added_teardown) { methods_called << :added_teardown }
|
180
180
|
end
|
@@ -27,71 +27,20 @@ class InstanceMethodTest < Test::Unit::TestCase
|
|
27
27
|
klass = Class.new
|
28
28
|
instance = klass.new
|
29
29
|
method = InstanceMethod.new(instance, :non_existent_method)
|
30
|
+
|
30
31
|
assert_raise(Test::Unit::AssertionFailedError) { method.stub }
|
31
32
|
end
|
32
33
|
|
33
|
-
def
|
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
|
34
|
+
def test_should_not_raise_assertion_failed_error_when_attempting_to_stub_existing_method
|
72
35
|
klass = Class.new { def method_x; end }
|
73
36
|
instance = klass.new
|
74
37
|
method = InstanceMethod.new(instance, :method_x)
|
75
|
-
|
76
|
-
method.
|
77
|
-
method.replace_instance_method(:remove_new_method) { self.remove_called = true }
|
78
|
-
|
79
|
-
method.unstub
|
80
|
-
|
81
|
-
assert !method.remove_called
|
38
|
+
|
39
|
+
assert_nothing_raised(Test::Unit::AssertionFailedError) { method.stub }
|
82
40
|
end
|
83
41
|
|
84
|
-
def
|
85
|
-
|
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
|
42
|
+
def test_should_inherit_from_class_method
|
43
|
+
assert_equal ClassMethod, InstanceMethod.superclass
|
95
44
|
end
|
96
|
-
|
45
|
+
|
97
46
|
end
|
@@ -14,7 +14,7 @@ class SetupAndTeardownTest < Test::Unit::TestCase
|
|
14
14
|
define_method(:add_setup_method) { |symbol| @symbol = symbol }
|
15
15
|
define_method(:add_teardown_method) {}
|
16
16
|
end
|
17
|
-
include
|
17
|
+
include SetupAndTeardown
|
18
18
|
end
|
19
19
|
|
20
20
|
assert_equal :setup_stubs, test_case_class.symbol
|
@@ -27,7 +27,7 @@ class SetupAndTeardownTest < Test::Unit::TestCase
|
|
27
27
|
define_method(:add_setup_method) {}
|
28
28
|
define_method(:add_teardown_method) { |symbol| @symbol = symbol }
|
29
29
|
end
|
30
|
-
include
|
30
|
+
include SetupAndTeardown
|
31
31
|
end
|
32
32
|
|
33
33
|
assert_equal :teardown_stubs, test_case_class.symbol
|
@@ -126,7 +126,7 @@ class SetupAndTeardownTest < Test::Unit::TestCase
|
|
126
126
|
end
|
127
127
|
attr_accessor :add_assertion_called
|
128
128
|
define_method(:add_assertion) { self.add_assertion_called = true }
|
129
|
-
include
|
129
|
+
include SetupAndTeardown
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
@@ -10,50 +10,87 @@ class StubbaIntegrationTest < Test::Unit::TestCase
|
|
10
10
|
def self.method_x
|
11
11
|
:original_return_value
|
12
12
|
end
|
13
|
+
def instance_method_1
|
14
|
+
:original_return_value
|
15
|
+
end
|
16
|
+
# def self.object
|
17
|
+
# @object ||= Class.new do
|
18
|
+
# def instance_method_1
|
19
|
+
# :original_return_value
|
20
|
+
# end
|
21
|
+
# end.new
|
22
|
+
# end
|
13
23
|
end
|
14
24
|
|
15
25
|
def test_should_stub_class_method_within_test
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
define_method(:test_me) do
|
20
|
-
DontMessWithMe.expects(:method_x).returns(:new_return_value)
|
21
|
-
assert_equal :new_return_value, DontMessWithMe.method_x
|
22
|
-
end
|
26
|
+
test = build_test do
|
27
|
+
DontMessWithMe.expects(:method_x).returns(:new_return_value)
|
28
|
+
assert_equal :new_return_value, DontMessWithMe.method_x
|
23
29
|
end
|
24
|
-
test = test_class.new(:test_me)
|
25
30
|
|
26
31
|
test_result = Test::Unit::TestResult.new
|
27
32
|
test.run(test_result) {}
|
28
33
|
assert test_result.passed?
|
29
34
|
end
|
30
35
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
include Stubba::SetupAndTeardown
|
35
|
-
define_method(:test_me) do
|
36
|
-
DontMessWithMe.expects(:method_x).returns(:new_return_value)
|
37
|
-
end
|
36
|
+
def test_should_leave_stubbed_class_method_unchanged_after_test
|
37
|
+
test = build_test do
|
38
|
+
DontMessWithMe.expects(:method_x).returns(:new_return_value)
|
38
39
|
end
|
39
|
-
test = test_class.new(:test_me)
|
40
40
|
|
41
41
|
test.run(Test::Unit::TestResult.new) {}
|
42
42
|
assert_equal :original_return_value, DontMessWithMe.method_x
|
43
43
|
end
|
44
44
|
|
45
|
-
def
|
46
|
-
|
47
|
-
|
48
|
-
include Stubba::SetupAndTeardown
|
49
|
-
define_method(:test_me) do
|
50
|
-
DontMessWithMe.expects(:method_x)
|
51
|
-
end
|
45
|
+
def test_should_reset_class_expectations_after_test
|
46
|
+
test = build_test do
|
47
|
+
DontMessWithMe.expects(:method_x)
|
52
48
|
end
|
53
|
-
test = test_class.new(:test_me)
|
54
49
|
|
55
50
|
test.run(Test::Unit::TestResult.new) {}
|
56
51
|
assert_equal 0, DontMessWithMe.mocha.expectations.size
|
57
52
|
end
|
58
53
|
|
54
|
+
def test_should_stub_instance_method_within_test
|
55
|
+
instance = DontMessWithMe.new
|
56
|
+
test = build_test do
|
57
|
+
instance.expects(:instance_method_1).returns(:new_return_value)
|
58
|
+
assert_equal :new_return_value, instance.instance_method_1
|
59
|
+
end
|
60
|
+
test_result = Test::Unit::TestResult.new
|
61
|
+
test.run(test_result) {}
|
62
|
+
assert test_result.passed?
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_should_leave_stubbed_instance_method_unchanged_after_test
|
66
|
+
instance = DontMessWithMe.new
|
67
|
+
test = build_test do
|
68
|
+
instance.expects(:instance_method_1).returns(:new_return_value)
|
69
|
+
end
|
70
|
+
|
71
|
+
test.run(Test::Unit::TestResult.new) {}
|
72
|
+
assert_equal :original_return_value, instance.instance_method_1
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_should_reset_instance_expectations_after_test
|
76
|
+
instance = DontMessWithMe.new
|
77
|
+
test = build_test do
|
78
|
+
instance.expects(:instance_method_1).returns(:new_return_value)
|
79
|
+
end
|
80
|
+
|
81
|
+
test.run(Test::Unit::TestResult.new) {}
|
82
|
+
assert_equal 0, instance.mocha.expectations.size
|
83
|
+
end
|
84
|
+
|
85
|
+
private
|
86
|
+
|
87
|
+
def build_test(&block)
|
88
|
+
test_class = Class.new(Test::Unit::TestCase) do
|
89
|
+
include MultipleSetupAndTeardown
|
90
|
+
include SetupAndTeardown
|
91
|
+
define_method(:test_me, &block)
|
92
|
+
end
|
93
|
+
test_class.new(:test_me)
|
94
|
+
end
|
95
|
+
|
59
96
|
end
|
@@ -74,8 +74,8 @@ class StubbaTestResultIntegrationTest < Test::Unit::TestCase
|
|
74
74
|
|
75
75
|
def run_test(test_result = Test::Unit::TestResult.new, &block)
|
76
76
|
test_class = Class.new(Test::Unit::TestCase) do
|
77
|
-
include
|
78
|
-
include
|
77
|
+
include MultipleSetupAndTeardown
|
78
|
+
include SetupAndTeardown
|
79
79
|
define_method(:test_me, &block)
|
80
80
|
end
|
81
81
|
test = test_class.new(:test_me)
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: mocha
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.3.
|
7
|
-
date:
|
6
|
+
version: 0.3.3
|
7
|
+
date: 2007-01-18 00:00:00 +00:00
|
8
8
|
summary: Mocking and stubbing library
|
9
9
|
require_paths:
|
10
10
|
- lib
|