flexmock 1.3.3 → 2.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.autotest +3 -0
- data/.gitignore +14 -0
- data/.togglerc +7 -0
- data/.travis.yml +5 -0
- data/.yardopts +2 -0
- data/CHANGES +11 -0
- data/Gemfile +1 -4
- data/README.md +39 -11
- data/Rakefile +6 -217
- data/doc/examples/rspec_examples_spec.rb +244 -0
- data/doc/examples/test_unit_examples_test.rb +240 -0
- data/doc/jamis.rb +591 -0
- data/flexmock.gemspec +33 -0
- data/lib/flexmock.rb +0 -1
- data/lib/flexmock/composite_expectation.rb +1 -1
- data/lib/flexmock/core.rb +3 -7
- data/lib/flexmock/core_class_methods.rb +5 -1
- data/lib/flexmock/default_framework_adapter.rb +2 -2
- data/lib/flexmock/expectation.rb +29 -3
- data/lib/flexmock/expectation_director.rb +1 -1
- data/lib/flexmock/minitest.rb +13 -0
- data/lib/flexmock/minitest_extensions.rb +26 -0
- data/lib/flexmock/minitest_integration.rb +111 -0
- data/lib/flexmock/mock_container.rb +1 -2
- data/lib/flexmock/partial_mock.rb +61 -104
- data/lib/flexmock/recorder.rb +1 -2
- data/lib/flexmock/rspec.rb +6 -3
- data/lib/flexmock/test_unit_integration.rb +14 -0
- data/lib/flexmock/validators.rb +5 -4
- data/lib/flexmock/version.rb +1 -9
- data/rakelib/metrics.rake +40 -0
- data/rakelib/preview.rake +4 -0
- data/rakelib/tags.rake +18 -0
- data/todo.txt +20 -0
- metadata +61 -86
- data/Gemfile.lock +0 -20
- data/doc/examples/rspec_examples_spec.rdoc +0 -245
- data/doc/examples/test_unit_examples_test.rdoc +0 -241
- data/test/aliasing_test.rb +0 -66
- data/test/assert_spy_called_test.rb +0 -119
- data/test/base_class_test.rb +0 -71
- data/test/based_partials_test.rb +0 -51
- data/test/container_methods_test.rb +0 -118
- data/test/default_framework_adapter_test.rb +0 -38
- data/test/demeter_mocking_test.rb +0 -191
- data/test/deprecated_methods_test.rb +0 -225
- data/test/examples_from_readme_test.rb +0 -157
- data/test/expectation_description_test.rb +0 -80
- data/test/extended_should_receive_test.rb +0 -69
- data/test/flexmodel_test.rb +0 -54
- data/test/mock_builder_test.rb +0 -68
- data/test/naming_test.rb +0 -84
- data/test/new_instances_test.rb +0 -215
- data/test/object_extensions_test.rb +0 -25
- data/test/partial_mock_test.rb +0 -458
- data/test/record_mode_test.rb +0 -158
- data/test/redirect_error.rb +0 -16
- data/test/rspec_integration/integration_spec.rb +0 -56
- data/test/rspec_integration/spy_example_spec.rb +0 -207
- data/test/samples_test.rb +0 -283
- data/test/should_ignore_missing_test.rb +0 -84
- data/test/should_receive_test.rb +0 -1155
- data/test/spys_test.rb +0 -215
- data/test/symbol_extensions_test.rb +0 -8
- data/test/test_class_extensions.rb +0 -34
- data/test/test_setup.rb +0 -92
- data/test/test_unit_integration/auto_test_unit_test.rb +0 -42
- data/test/test_unit_integration/minitest_teardown_test.rb +0 -14
- data/test/tu_integration_test.rb +0 -99
- data/test/undefined_test.rb +0 -87
data/test/spys_test.rb
DELETED
@@ -1,215 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'test/test_setup'
|
4
|
-
|
5
|
-
class TestSpys < Test::Unit::TestCase
|
6
|
-
include FlexMock::TestCase
|
7
|
-
|
8
|
-
class FooBar
|
9
|
-
def foo
|
10
|
-
:foofoo
|
11
|
-
end
|
12
|
-
def bar
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def setup
|
17
|
-
super
|
18
|
-
@spy = flexmock(:on, FooBar)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_spy_detects_simple_call
|
22
|
-
@spy.foo
|
23
|
-
assert_spy_called @spy, :foo
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_spy_detects_simple_call_ignoring_args
|
27
|
-
@spy.foo(1)
|
28
|
-
assert_spy_called @spy, :foo, :_
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_spy_rejects_a_never_made_call
|
32
|
-
@spy.foo
|
33
|
-
assert_spy_not_called @spy, :bar
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_spy_detects_call_with_literal_arg
|
37
|
-
@spy.foo(1)
|
38
|
-
assert_spy_called @spy, :foo, 1
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_spy_detects_call_with_class_arg
|
42
|
-
@spy.foo(1)
|
43
|
-
assert_spy_called @spy, :foo, Integer
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_spy_rejects_call_with_non_matching_literal_arg
|
47
|
-
@spy.foo(2)
|
48
|
-
assert_spy_not_called @spy, :foo, 1
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_spy_detects_call_with_multiple_arguments
|
52
|
-
@spy.foo(1, "HI", :foo)
|
53
|
-
assert_spy_called @spy, :foo, /1/, "HI", Symbol
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_spy_detects_multiple_calls_with_different_arguments
|
57
|
-
@spy.foo(1)
|
58
|
-
@spy.foo(1)
|
59
|
-
assert_spy_called @spy, {:times => 2}, :foo, 1
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_spy_rejects_if_times_options_not_matching
|
63
|
-
@spy.foo(1)
|
64
|
-
@spy.foo(1)
|
65
|
-
assert_spy_not_called @spy, {:times => 1}, :foo, 1
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_spy_detects_a_block
|
69
|
-
@spy.foo { }
|
70
|
-
assert_spy_called @spy, :foo, Proc
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_spy_rejects_a_block
|
74
|
-
@spy.foo { }
|
75
|
-
assert_spy_not_called @spy, {:with_block => false}, :foo
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_spy_detects_a_missing_block
|
79
|
-
@spy.foo
|
80
|
-
assert_spy_called @spy, {:with_block => false}, :foo
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_spy_rejects_a_missing_block
|
84
|
-
@spy.foo
|
85
|
-
assert_spy_not_called @spy, :foo, Proc
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_spy_ignores_block
|
89
|
-
@spy.foo { }
|
90
|
-
assert_spy_called @spy, :foo, Proc
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_spy_accepts_correct_additional_validations
|
94
|
-
@spy.foo(2)
|
95
|
-
is_even = proc { |n| assert_equal 0, n%2 }
|
96
|
-
assert_spy_called @spy, { :and => is_even }, :foo, Integer
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_spy_accepts_multiple_additional_validations_first_failing
|
100
|
-
@spy.foo(4)
|
101
|
-
is_two = proc { |n| assert_equal 2, n }
|
102
|
-
is_even = proc { |n| assert_equal 0, n%2 }
|
103
|
-
assert_failed(/2.*expected but was.*4/mi) do
|
104
|
-
assert_spy_called @spy, { :and => [is_two, is_even] }, :foo, Integer
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_spy_accepts_multiple_additional_validations_second_failing
|
109
|
-
@spy.foo(4)
|
110
|
-
is_even = proc { |n| assert_equal 0, n%2 }
|
111
|
-
is_two = proc { |n| assert_equal 2, n }
|
112
|
-
assert_failed(/2.*expected but was.*4/mi) do
|
113
|
-
assert_spy_called @spy, { :and => [is_even, is_two] }, :foo, Integer
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_spy_rejects_incorrect_additional_validations
|
118
|
-
@spy.foo(3)
|
119
|
-
is_even = proc { |n| assert_equal 0, n%2 }
|
120
|
-
assert_failed(/0.*expected but was.*1/mi) do
|
121
|
-
assert_spy_called @spy, { :and => is_even }, :foo, Integer
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
def test_spy_selectively_applies_additional_validations
|
126
|
-
@spy.foo(2)
|
127
|
-
@spy.foo(3)
|
128
|
-
@spy.foo(4)
|
129
|
-
is_even = proc { |n| assert_equal 0, n%2 }
|
130
|
-
assert_failed(/0.*expected but was.*1/mi) do
|
131
|
-
assert_spy_called @spy, { :and => is_even, :on => 2 }, :foo, Integer
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
def assert_failed(message_pattern)
|
136
|
-
failed = false
|
137
|
-
begin
|
138
|
-
yield
|
139
|
-
rescue assertion_failed_error => ex
|
140
|
-
failed = true
|
141
|
-
assert_match message_pattern, ex.message
|
142
|
-
end
|
143
|
-
assert(failed, "Expected block to fail")
|
144
|
-
end
|
145
|
-
|
146
|
-
def test_spy_methods_can_be_stubbed
|
147
|
-
@spy.should_receive(:foo).and_return(:hi)
|
148
|
-
result = @spy.foo
|
149
|
-
assert_equal result, :hi
|
150
|
-
assert_spy_called @spy, :foo
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_spy_cannot_see_normal_methods
|
154
|
-
foo = FooBar.new
|
155
|
-
flexmock(foo)
|
156
|
-
assert_equal :foofoo, foo.foo
|
157
|
-
assert_spy_not_called foo, :foo
|
158
|
-
end
|
159
|
-
|
160
|
-
def test_spy_cannot_see_normal_methods2
|
161
|
-
foo = FooBar.new
|
162
|
-
flexmock(foo).should_receive(:foo).pass_thru
|
163
|
-
assert_equal :foofoo, foo.foo
|
164
|
-
assert_spy_called foo, :foo
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_calling_non_spy_base_methods_is_an_error
|
168
|
-
assert_raise(NoMethodError) do
|
169
|
-
@spy.baz
|
170
|
-
end
|
171
|
-
end
|
172
|
-
|
173
|
-
def test_cant_put_expectations_on_non_base_class_methodsx
|
174
|
-
ex = assert_raise(NoMethodError) do
|
175
|
-
@spy.should_receive(:baz).and_return(:bar)
|
176
|
-
end
|
177
|
-
assert_match(/cannot stub.*defined.*base.*class/i, ex.message)
|
178
|
-
assert_match(/method: +baz/i, ex.message)
|
179
|
-
assert_match(/base class: +TestSpys::FooBar/i, ex.message)
|
180
|
-
end
|
181
|
-
|
182
|
-
def test_cant_put_expectations_on_non_base_class_methods_unless_explicit
|
183
|
-
@spy.should_receive(:baz).explicitly.and_return(:bar)
|
184
|
-
@spy.baz
|
185
|
-
assert_spy_called @spy, :baz
|
186
|
-
end
|
187
|
-
|
188
|
-
def test_ok_to_use_explicit_even_when_its_not_needed
|
189
|
-
@spy.should_receive(:foo).explicitly.and_return(:bar)
|
190
|
-
@spy.foo
|
191
|
-
assert_spy_called @spy, :foo
|
192
|
-
end
|
193
|
-
|
194
|
-
def test_can_spy_on_partial_mocks
|
195
|
-
@foo = FooBar.new
|
196
|
-
@spy = flexmock(@foo)
|
197
|
-
@foo.should_receive(:foo => :baz)
|
198
|
-
result = @foo.foo
|
199
|
-
assert_equal :baz, result
|
200
|
-
assert_spy_called @foo, :foo
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_can_spy_on_class_defined_methods
|
204
|
-
flexmock(FooBar).should_receive(:new).and_return(:dummy)
|
205
|
-
FooBar.new
|
206
|
-
assert_spy_called FooBar, :new
|
207
|
-
end
|
208
|
-
|
209
|
-
def test_can_spy_on_regular_mocks
|
210
|
-
mock = flexmock("regular mock")
|
211
|
-
mock.should_receive(:foo => :bar)
|
212
|
-
mock.foo
|
213
|
-
assert_spy_called mock, :foo
|
214
|
-
end
|
215
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'test/test_setup'
|
2
|
-
|
3
|
-
class ClassExtensionsTest < Test::Unit::TestCase
|
4
|
-
|
5
|
-
class Dog
|
6
|
-
def wag
|
7
|
-
end
|
8
|
-
|
9
|
-
def method_missing(sym, *args, &block)
|
10
|
-
if sym == :bark
|
11
|
-
:woof
|
12
|
-
else
|
13
|
-
super
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def responds_to?(sym)
|
18
|
-
sym == :bark || super
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_class_directly_defines_method
|
23
|
-
assert Dog.flexmock_defined?(:wag)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_class_indirectly_defines_method
|
27
|
-
assert ! Dog.flexmock_defined?(:bark)
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_class_does_not_define_method
|
31
|
-
assert ! Dog.flexmock_defined?(:jump)
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
data/test/test_setup.rb
DELETED
@@ -1,92 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
require 'flexmock'
|
5
|
-
require 'test/redirect_error'
|
6
|
-
|
7
|
-
class FlexMock
|
8
|
-
module TestCase
|
9
|
-
def assertion_failed_error
|
10
|
-
FlexMock.framework_adapter.assertion_failed_error
|
11
|
-
end
|
12
|
-
|
13
|
-
# Assertion helper used to assert validation failure. If a
|
14
|
-
# message is given, then the error message should match the
|
15
|
-
# expected error message.
|
16
|
-
def assert_failure(options={}, &block)
|
17
|
-
message = options[:message]
|
18
|
-
ex = assert_raises(assertion_failed_error) { yield }
|
19
|
-
if message
|
20
|
-
case message
|
21
|
-
when Regexp
|
22
|
-
assert_match message, ex.message
|
23
|
-
when String
|
24
|
-
assert ex.message.index(message), "Error message '#{ex.message}' should contain '#{message}'"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
ex
|
28
|
-
end
|
29
|
-
|
30
|
-
# Similar to assert_failure, but assumes that a mock generated
|
31
|
-
# error object is return, so additional tests on the backtrace are
|
32
|
-
# added.
|
33
|
-
def assert_mock_failure(options={}, &block)
|
34
|
-
ex = assert_failure(options, &block)
|
35
|
-
file = eval("__FILE__", block.binding)
|
36
|
-
assert_matching_line(ex, file, options)
|
37
|
-
end
|
38
|
-
|
39
|
-
# Assert that there is a line matching file in the backtrace.
|
40
|
-
# Options are:
|
41
|
-
#
|
42
|
-
# deep: true -- matching line can be anywhere in backtrace,
|
43
|
-
# otherwise it must be the first.
|
44
|
-
#
|
45
|
-
# line: n -- Add a line number to the match
|
46
|
-
#
|
47
|
-
def assert_matching_line(ex, file, options)
|
48
|
-
line = options[:line]
|
49
|
-
search_all = options[:deep]
|
50
|
-
if line
|
51
|
-
loc_re = /#{Regexp.quote(file)}:#{line}/
|
52
|
-
else
|
53
|
-
loc_re = Regexp.compile(Regexp.quote(file))
|
54
|
-
end
|
55
|
-
|
56
|
-
|
57
|
-
if search_all
|
58
|
-
bts = ex.backtrace.join("\n")
|
59
|
-
assert_with_block("expected a backtrace line to match #{loc_re}\nBACKTRACE:\n#{bts}") {
|
60
|
-
ex.backtrace.any? { |bt| loc_re =~ bt }
|
61
|
-
}
|
62
|
-
else
|
63
|
-
assert_match(loc_re, ex.backtrace.first)
|
64
|
-
end
|
65
|
-
|
66
|
-
ex
|
67
|
-
end
|
68
|
-
|
69
|
-
unless defined?(refute_match)
|
70
|
-
def refute_match(*args)
|
71
|
-
assert_no_match(*args)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
def assert_with_block(msg=nil)
|
76
|
-
unless yield
|
77
|
-
assert(false, msg || "Expected block to yield true")
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
def pending(msg="")
|
82
|
-
state = "PASSING"
|
83
|
-
begin
|
84
|
-
yield
|
85
|
-
rescue Exception => _
|
86
|
-
state = "FAILING"
|
87
|
-
end
|
88
|
-
where = caller.first.split(/:in/).first
|
89
|
-
puts "\n#{state} PENDING TEST (#{msg}) #{where}"
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
#---
|
4
|
-
# Copyright 2003-2013 by Jim Weirich (jim.weirich@gmail.com).
|
5
|
-
# All rights reserved.
|
6
|
-
|
7
|
-
# Permission is granted for use, copying, modification, distribution,
|
8
|
-
# and distribution of modified versions of this work as long as the
|
9
|
-
# above copyright notice is included.
|
10
|
-
#+++
|
11
|
-
|
12
|
-
require "test/test_setup"
|
13
|
-
|
14
|
-
require "flexmock/base"
|
15
|
-
require "flexmock/test_unit"
|
16
|
-
|
17
|
-
class TestFlexmockTestUnit < Test::Unit::TestCase
|
18
|
-
def teardown
|
19
|
-
failed = false
|
20
|
-
begin
|
21
|
-
super
|
22
|
-
rescue Exception => ex
|
23
|
-
failed = true
|
24
|
-
end
|
25
|
-
assert_equal @should_fail, failed, "Expected failed to be #{@should_fail}"
|
26
|
-
end
|
27
|
-
|
28
|
-
# This test should pass.
|
29
|
-
def test_can_create_mocks
|
30
|
-
m = flexmock("mock")
|
31
|
-
m.should_receive(:hi).once
|
32
|
-
m.hi
|
33
|
-
@should_fail = false
|
34
|
-
end
|
35
|
-
|
36
|
-
# This test should fail during teardown.
|
37
|
-
def test_should_fail__mocks_are_auto_verified
|
38
|
-
m = flexmock("mock")
|
39
|
-
m.should_receive(:hi).once
|
40
|
-
@should_fail = true
|
41
|
-
end
|
42
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require "minitest/autorun"
|
2
|
-
require 'flexmock/test_unit'
|
3
|
-
|
4
|
-
class SimpleTest < MiniTest::Unit::TestCase
|
5
|
-
|
6
|
-
# This validates that the minitest teardown method is properly
|
7
|
-
# aliased when using MiniTest.
|
8
|
-
#
|
9
|
-
# (see https://github.com/jimweirich/flexmock/issues/14).
|
10
|
-
#
|
11
|
-
def test_flexmock
|
12
|
-
flexmock()
|
13
|
-
end
|
14
|
-
end
|
data/test/tu_integration_test.rb
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
#---
|
4
|
-
# Copyright 2003-2013 by Jim Weirich (jim.weirich@gmail.com).
|
5
|
-
# All rights reserved.
|
6
|
-
|
7
|
-
# Permission is granted for use, copying, modification, distribution,
|
8
|
-
# and distribution of modified versions of this work as long as the
|
9
|
-
# above copyright notice is included.
|
10
|
-
#+++
|
11
|
-
|
12
|
-
require 'test/test_setup'
|
13
|
-
|
14
|
-
# The following tests exercise Test::Unit integration. They are
|
15
|
-
# disabled if actually running under MiniTest because the MiniTest is
|
16
|
-
# different enough internally that the tests are not worthwhile.
|
17
|
-
|
18
|
-
unless defined?(MiniTest)
|
19
|
-
class TestTuIntegrationFlexMockMethod < Test::Unit::TestCase
|
20
|
-
include FlexMock::TestCase
|
21
|
-
|
22
|
-
def test_can_construct_flexmock
|
23
|
-
mock = flexmock("x")
|
24
|
-
mock.should_receive(:hi).and_return(:hello)
|
25
|
-
assert_equal :hello, mock.hi
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_can_construct_flexmock_with_block
|
29
|
-
mock = flexmock("x") do |m|
|
30
|
-
m.should_receive(:hi).and_return(:hello)
|
31
|
-
end
|
32
|
-
assert_equal :hello, mock.hi
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
class TestTuIntegrationMockVerificationInTeardown < Test::Unit::TestCase
|
37
|
-
include FlexMock::TestCase
|
38
|
-
|
39
|
-
def teardown
|
40
|
-
assert_raise(assertion_failed_error) do
|
41
|
-
super
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_mock_verification_occurs_during_teardown
|
46
|
-
flexmock("xyz").should_receive(:hi).with(any).once
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
class TestTuIntegrationMockVerificationWithoutSetup < Test::Unit::TestCase
|
51
|
-
include FlexMock::TestCase
|
52
|
-
|
53
|
-
def teardown
|
54
|
-
assert_raise(assertion_failed_error) do
|
55
|
-
super
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_mock_verification_occurs_during_teardown
|
60
|
-
flexmock("xyz").should_receive(:hi).with(any).once
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
class TestTuIntegrationMockVerificationForgetfulSetup < Test::Unit::TestCase
|
65
|
-
include FlexMock::TestCase
|
66
|
-
|
67
|
-
def teardown
|
68
|
-
assert_raise(assertion_failed_error) do
|
69
|
-
super
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_mock_verification_occurs_during_teardown
|
74
|
-
flexmock("xyz").should_receive(:hi).with(any).once
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
class TestTuIntegrationSetupOverridenAndNoMocksOk < Test::Unit::TestCase
|
79
|
-
include FlexMock::TestCase
|
80
|
-
|
81
|
-
def test_mock_verification_occurs_during_teardown
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
class TestTuIntegrationFailurePreventsVerification < Test::Unit::TestCase
|
86
|
-
include FlexMock::TestCase
|
87
|
-
|
88
|
-
def test_mock_verification_occurs_during_teardown
|
89
|
-
flexmock('m').should_receive(:hi).once
|
90
|
-
simulate_failure
|
91
|
-
end
|
92
|
-
|
93
|
-
private
|
94
|
-
|
95
|
-
def simulate_failure
|
96
|
-
@test_passed = false
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|