flexmock 0.6.4 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,5 +1,13 @@
1
1
  = Changes for FlexMock
2
2
 
3
+ == Pre-Version 0.7.0
4
+
5
+ * Added +and_yield+ as an expectation clause.
6
+ * Inspect on Mocks now yield a more consise description.
7
+ * Global ordering across all mocks in a container is now allowed.
8
+ * Added support for Demeter chain mocking.
9
+ * Deprecated a number of mock_* methods.
10
+
3
11
  == Version 0.6.4
4
12
 
5
13
  * Renamed flexmodel(...) to flexmock(:model, ...) because visually
data/README CHANGED
@@ -3,7 +3,7 @@
3
3
  FlexMock is a simple, but flexible, mock object library for Ruby unit
4
4
  testing.
5
5
 
6
- Version :: 0.6.4
6
+ Version :: 0.7.0
7
7
 
8
8
  = Links
9
9
 
@@ -82,7 +82,9 @@ include.
82
82
 
83
83
  == RSpec Integration
84
84
 
85
- FlexMock also supports integration with the RSpec behavior specification framework. Starting with version 0.9.0 of RSpec, you will be able to say:
85
+ FlexMock also supports integration with the RSpec behavior
86
+ specification framework. Starting with version 0.9.0 of RSpec, you
87
+ will be able to say:
86
88
 
87
89
  Spec::Runner.configure do |config|
88
90
  config.mock_with :flexmock
@@ -184,9 +186,14 @@ See FlexMock::MockContainer#flexmock for more details.
184
186
  * new_record? -- returns false.
185
187
  * errors -- returns an empty (mocked) errors object.
186
188
  * is_a?(other) -- returns true if other == YourModel.
189
+ * instance_of?(class) -- returns true if class == YourModel
190
+ * kind_of?(class) -- returns true if class is YourModel or one of its ancestors
187
191
  * class -- returns YourModel.
188
192
 
189
- <b>NOTE:</b> Versions of FlexMock prior to 0.6.0 used +flexstub+ to create partial mocks. The +flexmock+ method now assumes all the functionality that was spread out between two different methods. +flexstub+ is still available for backward compatibility.
193
+ <b>NOTE:</b> Versions of FlexMock prior to 0.6.0 used +flexstub+ to
194
+ create partial mocks. The +flexmock+ method now assumes all the
195
+ functionality that was spread out between two different methods.
196
+ +flexstub+ is still available for backward compatibility.
190
197
 
191
198
  === Expectation Declarators
192
199
 
@@ -289,6 +296,33 @@ object. See theFlexMock::Expectation for more details.
289
296
  supplied arguments. If +exception+ is an instance of an exception
290
297
  class, then it will be raised directly.
291
298
 
299
+ * <b>raises( ... )</b>
300
+
301
+ Alias for <tt>and_raise</tt>.
302
+
303
+ * <b>and_throw(symbol)</b>
304
+ * <b>and_throw(symbol, value)</b>
305
+
306
+ Declares that the expected messsage will throw the specified symbol.
307
+ If an optional value is included, then it will be the value returned
308
+ from the corresponding catch statement.
309
+
310
+ * <b>throws( ... )</b>
311
+
312
+ Alias for <tt>and_throw</tt>.
313
+
314
+ * <b>and_yield(values, ...)</b>
315
+
316
+ Declares that the mocked method will receive a block, and the mock
317
+ will call that block with the values given. Not providing a block
318
+ will be an error. Providing more than one +and_yield+ clause one a
319
+ single expectation will mean that subsquent mock method calls will
320
+ yield the values provided by the additional +and_yield+ clause.
321
+
322
+ * <b>yields( ... )</b>
323
+
324
+ Alias for <tt>and_yield( ... )</tt>.
325
+
292
326
  * <b>zero_or_more_times</b>
293
327
 
294
328
  Declares that the expected message is may be sent zero or more times
@@ -336,6 +370,10 @@ object. See theFlexMock::Expectation for more details.
336
370
  declared ordered messages. Unordered messages are ignored when considering
337
371
  the message order.
338
372
 
373
+ Normally ordering is performed only against calls in the same mock
374
+ object. If the "globally" adjective is used, then ordering is
375
+ performed against the other globally ordered method calls.
376
+
339
377
  * <b>ordered(<em>group</em>)</b>
340
378
 
341
379
  Declare that the expected message belongs to an order group. Methods within
@@ -354,6 +392,19 @@ object. See theFlexMock::Expectation for more details.
354
392
  m.should_receive(:flop).ordered(:flip_flop_group)
355
393
  m.should_receive(:end).ordered
356
394
 
395
+ Normally ordering is performed only against calls in the same mock
396
+ object. If the "globally" adjective is used, then ordering is
397
+ performed against the other globally ordered method calls.
398
+
399
+ * <b>globally.ordered</b>
400
+ * <b>globally.ordered(<em>group_name</em>)</b>
401
+
402
+ When modified by the "globally" adjective, the mock call will be
403
+ ordered against other globally ordered methods in any of the mock
404
+ objects in the same container (i.e. same test). All the options of
405
+ the per-mock ordering are available in the globally ordered method
406
+ calls.
407
+
357
408
  * <b>mock</b>
358
409
 
359
410
  Expectation constraints always return the expectation so that the
@@ -363,6 +414,10 @@ object. See theFlexMock::Expectation for more details.
363
414
 
364
415
  m = flexmock.should_receive(:hello).once.and_return("World").mock
365
416
 
417
+ <b>NOTE:</b> <em>Using <b>mock</b> when specifying a Demeter mock
418
+ chain will return the last mock of the chain, which might not be
419
+ what you expect.
420
+
366
421
  === Argument Validation
367
422
 
368
423
  The values passed to the +with+ declarator determine the criteria for matching
@@ -557,6 +612,64 @@ methods at the same time. E.g.
557
612
  m.should_receive(:wag).at_least.once.and_return(:happy)
558
613
  end
559
614
 
615
+ === Mocking Law of Demeter Violations
616
+
617
+ The Law of Demeter says that you should only invoke methods on objects
618
+ to which you have a direct connection, e.g. parameters, instance
619
+ variables, and local variables. You can usually detect Law of Demeter
620
+ violations by the excessive number of periods in an expression. For
621
+ example:
622
+
623
+ car.chassis.axle.universal_joint.cog.turn
624
+
625
+ The Law of Demeter has a very big impact on mocking. If you need to
626
+ mock the "turn" method on "cog", you first have to mock chassis, axle,
627
+ and universal_joint.
628
+
629
+ # Manually mocking a Law of Demeter violation
630
+ cog = flexmock("cog")
631
+ cog.should_receive(:turn).once.and_return(:ok)
632
+ joint = flexmock("gear", :cog => cog)
633
+ axle = flexmock("axle", :universal_joint => joint)
634
+ chassis = flexmock("chassis", :axle => axle)
635
+ car = flexmock("car", :chassis => chassis)
636
+
637
+ Yuck!
638
+
639
+ The best course of action is to avoid Law of Demeter violations. Then
640
+ your mocking exploits will be very simple. However, sometimes you
641
+ have to deal with code that already has a Demeter chain of method
642
+ calls. So for those cases where you can't avoid it, FlexMock will
643
+ allow you to easily mock Demeter method chains.
644
+
645
+ Here's an example of Demeter chain mocking:
646
+
647
+ # Demeter chain mocking using the short form.
648
+ car = flexmock("car")
649
+ car.should_receive( "chassis.axle.universal_joint.cog.turn" => :ok).once
650
+
651
+ You can also use the long form:
652
+
653
+ # Demeter chain mocking using the long form.
654
+ car = flexmock("car")
655
+ car.should_receive("chassis.axle.universal_joint.cog.turn").once.
656
+ and_return(:ok)
657
+
658
+ That's it. Anywhere FlexMock accepts a method name for mocking, you
659
+ can use a demeter chain and FlexMock will attempt to do the right
660
+ thing.
661
+
662
+ But beware, there are a few limitations.
663
+
664
+ The all the methods in the chain, except for the last one, will mocked
665
+ to return a mock object. That mock object, in turn, will be mocked so
666
+ as to respond to the next method in the chain, returning the following
667
+ mock. And so on. If you try to manually mock out any of the chained
668
+ methods, you could easily interfer with the mocking specified by the
669
+ Demeter chain. FlexMock will attempt to catch problems when it can,
670
+ but there are certainly scenarios where it cannot detect the problem
671
+ beforehand.
672
+
560
673
  == Examples
561
674
 
562
675
  === Create a simple mock object that returns a value for a set of method calls
data/Rakefile CHANGED
@@ -19,7 +19,7 @@ require 'rake/contrib/rubyforgepublisher'
19
19
  CLEAN.include('*.tmp')
20
20
  CLOBBER.include("html", 'pkg')
21
21
 
22
- PKG_VERSION = '0.6.4'
22
+ PKG_VERSION = '0.7.0'
23
23
 
24
24
  PKG_FILES = FileList[
25
25
  '[A-Z]*',
@@ -45,7 +45,7 @@ task :ta => [:test_all]
45
45
 
46
46
  Rake::TestTask.new do |t|
47
47
  t.pattern = 'test/test*.rb'
48
- t.verbose = true
48
+ t.verbose = false
49
49
  t.warning = true
50
50
  end
51
51
 
@@ -56,11 +56,11 @@ Rake::TestTask.new(:test_extended) do |t|
56
56
  end
57
57
 
58
58
  task :rspec do
59
- ENV['RUBYLIB'] = "/Users/jim/working/svn/software/rspec/rspec/lib:/Users/jim/working/svn/software/flexmock/lib"
59
+ ENV['RUBYLIB'] = "/Users/jim/working/svn/software/flexmock/lib"
60
60
  sh 'echo $RUBYLIB'
61
- ruby "/Users/jim/working/svn/software/rspec/rspec/bin/spec test/rspec_integration/*_spec.rb" rescue nil
61
+ sh "spec test/rspec_integration/*_spec.rb" rescue nil
62
62
  puts
63
- puts "*** There should be two failures in the above report. ***"
63
+ puts "*** There should be three failures in the above report. ***"
64
64
  puts
65
65
  end
66
66
 
data/TAGS CHANGED
@@ -34,29 +34,33 @@ lib/flexmock/base.rb,0
34
34
  lib/flexmock/composite.rb,30
35
35
  class FlexMockFlexMock8,133
36
36
 
37
- lib/flexmock/core.rb,736
38
- class FlexMockFlexMock44,1236
39
- def initialize(name="unknown")initialize50,1435
40
- def mock_handle(sym, expected_count=nil, &block) # :nodoc:mock_handle66,1959
41
- def mock_verifymock_verify72,2199
42
- def mock_teardownmock_teardown83,2428
43
- def mock_allocate_ordermock_allocate_order87,2504
44
- def should_ignore_missingshould_ignore_missing92,2612
45
- def method_missing(sym, *args, &block)method_missing98,2787
46
- def respond_to?(sym)respond_to?113,3220
47
- def method(sym)method118,3375
48
- def should_receive(*args)should_receive147,4395
49
- def should_expectshould_expect169,5078
50
- def mock_wrap(&block)mock_wrap177,5268
51
- def override_existing_method(sym)override_existing_method191,5819
52
- def sclasssclass200,6039
53
-
54
- lib/flexmock/core_class_methods.rb,239
55
- class FlexMockFlexMock14,337
56
- def should_receive(args) # :nodoc:should_receive26,798
57
- def use(*names)use61,2024
58
- def format_args(sym, args) # :nodoc:format_args77,2444
59
- def check(msg, &block) # :nodoc:check87,2745
37
+ lib/flexmock/core.rb,853
38
+ class FlexMockFlexMock45,1264
39
+ class UsageError < RuntimeErrorUsageError49,1351
40
+ class MockError < RuntimeErrorMockError52,1392
41
+ def initialize(name="unknown", container=nil)initialize61,1667
42
+ def inspectinspect71,1961
43
+ def flexmock_verifyflexmock_verify77,2121
44
+ def flexmock_teardownflexmock_teardown88,2362
45
+ def should_ignore_missingshould_ignore_missing92,2442
46
+ def method_missing(sym, *args, &block)method_missing98,2617
47
+ def respond_to?(sym)respond_to?113,3054
48
+ def flexmock_find_expectation(sym, *args)flexmock_find_expectation118,3203
49
+ def method(sym)method124,3393
50
+ def should_receive(*args)should_receive153,4413
51
+ def should_expectshould_expect175,5112
52
+ def flexmock_wrap(&block)flexmock_wrap183,5302
53
+ def override_existing_method(sym)override_existing_method197,5861
54
+ def sclasssclass206,6081
55
+
56
+ lib/flexmock/core_class_methods.rb,289
57
+ class FlexMockFlexMock15,371
58
+ def use(*names)use39,1312
59
+ def format_args(sym, args) # :nodoc:format_args53,1710
60
+ def check(msg, &block) # :nodoc:check63,2011
61
+ class UseContainerUseContainer70,2186
62
+ def initializeinitialize75,2276
63
+ def passed?passed?79,2337
60
64
 
61
65
  lib/flexmock/default_framework_adapter.rb,345
62
66
  class FlexMockFlexMock14,337
@@ -66,84 +70,119 @@ class FlexMockFlexMock14,337
66
70
  class AssertionFailedError < StandardError; endAssertionFailedError26,597
67
71
  def assertion_failed_errorassertion_failed_error27,649
68
72
 
69
- lib/flexmock/expectation.rb,1501
73
+ lib/flexmock/deprecated_methods.rb,340
74
+ class ModuleModule13,314
75
+ def flexmock_deprecate(*method_names)flexmock_deprecate14,327
76
+ class FlexMockFlexMock33,827
77
+ def mock_handle(sym, expected_count=nil, &block) # :nodoc:mock_handle40,1125
78
+ class PartialMockProxyPartialMockProxy47,1415
79
+ def any_instance(&block)any_instance53,1572
80
+ module OrderingOrdering59,1720
81
+
82
+ lib/flexmock/expectation.rb,1895
70
83
  class FlexMockFlexMock14,337
71
84
  class ExpectationExpectation28,872
72
85
  def initialize(mock, sym)initialize34,1018
73
- def to_sto_s46,1323
74
- def verify_call(*args)verify_call52,1505
75
- def eligible?eligible?60,1759
76
- def validate_ordervalidate_order65,1880
77
- def mock_verifymock_verify77,2317
78
- def match_args(args)match_args85,2510
79
- def match_arg(expected, actual)match_arg94,2856
80
- def with(*args)with101,3085
81
- def with_no_argswith_no_args107,3219
82
- def with_any_argswith_any_args113,3352
83
- def and_return(*args, &block)and_return144,4361
84
- def and_raise(exception, *args)and_raise174,5267
85
- def zero_or_more_timeszero_or_more_times180,5450
86
- def times(limit)times187,5673
87
- def nevernever196,6020
88
- def onceonce203,6235
89
- def twicetwice210,6450
90
- def at_leastat_least222,6776
91
- def at_mostat_most235,7155
92
- def ordered(group_name=nil)ordered264,8424
93
- class CompositeExpectationCompositeExpectation281,9010
94
- def initializeinitialize284,9084
95
- def add(expectation)add289,9180
96
- def method_missing(sym, *args, &block)method_missing294,9321
97
- def order_numberorder_number305,9700
98
- def mockmock310,9810
99
- def should_receive(*args, &block)should_receive316,9978
100
- def to_sto_s321,10124
101
- class ExpectationRecorderExpectationRecorder335,10582
102
- def initializeinitialize338,10642
103
- def method_missing(sym, *args, &block)method_missing343,10753
104
- def apply(mock)apply351,11029
105
-
106
- lib/flexmock/expectation_director.rb,236
86
+ def to_sto_s49,1380
87
+ def verify_call(*args)verify_call55,1562
88
+ def _return_value(args) # :nodoc:_return_value64,1782
89
+ def return_value(args)return_value69,1922
90
+ def perform_yielding(args)perform_yielding83,2245
91
+ def eligible?eligible?99,2822
92
+ def validate_ordervalidate_order104,2943
93
+ def flexmock_verifyflexmock_verify116,3318
94
+ def match_args(args)match_args124,3515
95
+ def match_arg(expected, actual)match_arg133,3861
96
+ def with(*args)with140,4090
97
+ def with_no_argswith_no_args146,4224
98
+ def with_any_argswith_any_args152,4357
99
+ def and_return(*args, &block)and_return183,5366
100
+ def and_yield(*yield_values)and_yield195,5618
101
+ def and_raise(exception, *args)and_raise219,6381
102
+ def and_throw(sym, value=nil)and_throw233,6746
103
+ def zero_or_more_timeszero_or_more_times239,6921
104
+ def times(limit)times246,7144
105
+ def nevernever255,7491
106
+ def onceonce262,7706
107
+ def twicetwice269,7921
108
+ def at_leastat_least281,8247
109
+ def at_mostat_most294,8626
110
+ def ordered(group_name=nil)ordered323,9895
111
+ def globallyglobally335,10275
112
+ def define_ordered(group_name, ordering)define_ordered341,10390
113
+ class CompositeExpectationCompositeExpectation361,11145
114
+ def initializeinitialize364,11219
115
+ def add(expectation)add369,11315
116
+ def method_missing(sym, *args, &block)method_missing374,11456
117
+ def order_numberorder_number385,11835
118
+ def mockmock390,11945
119
+ def should_receive(*args, &block)should_receive396,12113
120
+ def to_sto_s401,12259
121
+ class ExpectationRecorderExpectationRecorder415,12717
122
+ def initializeinitialize418,12777
123
+ def method_missing(sym, *args, &block)method_missing423,12888
124
+ def apply(mock)apply431,13164
125
+
126
+ lib/flexmock/expectation_director.rb,301
107
127
  class FlexMockFlexMock14,337
108
128
  class ExpectationDirectorExpectationDirector20,549
109
129
  def initialize(sym)initialize23,633
110
130
  def call(*args)call37,1161
111
- def <<(expectation)<<46,1504
112
- def mock_verifymock_verify52,1663
113
-
114
- lib/flexmock/mock_container.rb,488
115
- class FlexMockFlexMock14,337
116
- module MockContainerMockContainer24,743
117
- def flexmock_teardownflexmock_teardown27,905
118
- def flexmock_verifyflexmock_verify34,1063
119
- def flexmock_closeflexmock_close43,1354
120
- def flexmock(*args)flexmock112,4620
121
- def flexmock_make_partial_proxy(obj, name)flexmock_make_partial_proxy146,5494
122
- def flexmock_quick_define(mock, defs)flexmock_quick_define155,5799
123
- def flexmock_remember(mocking_object)flexmock_remember163,6025
131
+ def find_expectation(*args)find_expectation45,1424
132
+ def <<(expectation)<<51,1639
133
+ def flexmock_verifyflexmock_verify57,1798
134
+
135
+ lib/flexmock/mock_container.rb,882
136
+ class FlexMockFlexMock15,371
137
+ module MockContainerMockContainer25,777
138
+ def flexmock_teardownflexmock_teardown30,961
139
+ def flexmock_verifyflexmock_verify37,1119
140
+ def flexmock_closeflexmock_close46,1414
141
+ def flexmock(*args)flexmock115,4684
142
+ def flexmock_remember(mocking_object)flexmock_remember157,5960
143
+ class MockContainerHelperMockContainerHelper173,6610
144
+ def next_idnext_id177,6719
145
+ def parse_should_args(mock, args, &block) # :nodoc:parse_should_args190,7188
146
+ def add_model_methods(mock, model_class, id)add_model_methods208,7701
147
+ def make_partial_proxy(container, obj, name, safe_mode)make_partial_proxy229,8439
148
+ def build_demeter_chain(mock, arg, &block)build_demeter_chain274,10292
149
+ def check_proper_mock(mock, method_name)check_proper_mock299,11143
150
+ def check_method_names(names)check_method_names307,11434
124
151
 
125
152
  lib/flexmock/noop.rb,0
126
153
 
127
- lib/flexmock/partial_mock.rb,1057
154
+ lib/flexmock/ordering.rb,399
155
+ class FlexMockFlexMock12,312
156
+ module OrderingOrdering20,684
157
+ def flexmock_allocate_orderflexmock_allocate_order23,751
158
+ def flexmock_groupsflexmock_groups29,914
159
+ def flexmock_current_orderflexmock_current_order34,1022
160
+ def flexmock_current_order=(value)flexmock_current_order=39,1145
161
+ def flexmock_validate_order(method_name, order_number)flexmock_validate_order43,1231
162
+
163
+ lib/flexmock/partial_mock.rb,1298
128
164
  class FlexMockFlexMock14,337
129
- class PartialMockPartialMock25,954
130
- def initialize(obj, mock)initialize30,1105
131
- def should_receive(*args)should_receive60,2218
132
- def new_instances(*allocators, &block)new_instances88,3171
133
- def any_instance(&block)any_instance106,3804
134
- def invoke_original(method, args)invoke_original113,4036
135
- def mock_verifymock_verify121,4330
136
- def mock_teardownmock_teardown126,4458
137
- def mock_allocate_ordermock_allocate_order138,4804
138
- def sclasssclass145,4923
139
- def singleton?(method_name)singleton?151,5064
140
- def hide_existing_method(method_name)hide_existing_method161,5526
141
- def create_alias_for_existing_method(method_name)create_alias_for_existing_method181,6240
142
- def define_proxy_method(method_name)define_proxy_method199,6759
143
- def restore_original_definition(method_name)restore_original_definition220,7459
144
- def remove_current_method(method_name)remove_current_method232,7823
145
- def detached?detached?237,7984
146
- def new_name(old_name)new_name242,8092
165
+ class PartialMockProxyPartialMockProxy26,968
166
+ def initialize(obj, mock, safe_mode)initialize40,1310
167
+ def flexmock_getflexmock_get53,1620
168
+ def should_receive(*args)should_receive77,2560
169
+ def add_mock_method(obj, method_name)add_mock_method88,2838
170
+ def new_instances(*allocators, &block)new_instances114,3788
171
+ def invoke_original(method, args)invoke_original132,4419
172
+ def flexmock_verifyflexmock_verify140,4713
173
+ def flexmock_teardownflexmock_teardown145,4849
174
+ def flexmock_containerflexmock_container157,5187
175
+ def flexmock_container=(container)flexmock_container=163,5382
176
+ def sclasssclass169,5484
177
+ def singleton?(method_name)singleton?175,5625
178
+ def hide_existing_method(method_name)hide_existing_method185,6087
179
+ def stow_existing_definition(method_name)stow_existing_definition192,6304
180
+ def create_alias_for_existing_method(method_name)create_alias_for_existing_method212,7021
181
+ def define_proxy_method(method_name)define_proxy_method230,7540
182
+ def restore_original_definition(method_name)restore_original_definition251,8240
183
+ def remove_current_method(method_name)remove_current_method263,8604
184
+ def detached?detached?268,8765
185
+ def new_name(old_name)new_name273,8873
147
186
 
148
187
  lib/flexmock/recorder.rb,271
149
188
  class FlexMockFlexMock14,347
@@ -187,7 +226,17 @@ class FlexMockFlexMock14,337
187
226
  class AtMostCountValidator < CountValidatorAtMostCountValidator69,2058
188
227
  def validate(n)validate71,2173
189
228
 
190
- test/test_container_methods.rb,1097
229
+ test/asserts.rb,139
230
+ class FlexMockFlexMock12,312
231
+ module FailureAssertionFailureAssertion15,368
232
+ def assert_failure(message=nil)assert_failure21,567
233
+
234
+ test/redirect_error.rb,114
235
+ class FlexMockFlexMock3,20
236
+ module RedirectErrorRedirectError4,35
237
+ def redirect_errorredirect_error5,58
238
+
239
+ test/test_container_methods.rb,1111
191
240
  class TestFlexmockContainerMethods < Test::Unit::TestCaseTestFlexmockContainerMethods16,410
192
241
  def test_simple_mock_creationtest_simple_mock_creation19,498
193
242
  def test_mock_with_nametest_mock_with_name25,639
@@ -201,8 +250,8 @@ class TestFlexmockContainerMethods < Test::Unit::TestCaseTestFlexmockContainerM
201
250
  def test_stub_with_name_quick_definitionstest_stub_with_name_quick_definitions83,2305
202
251
  def test_stubs_are_auto_verifiedtest_stubs_are_auto_verified92,2629
203
252
  def test_stubbing_a_stringtest_stubbing_a_string99,2831
204
- def test_multiple_stubs_work_with_same_PartialMocktest_multiple_stubs_work_with_same_PartialMock105,2958
205
- def test_multiple_stubs_layer_behaviortest_multiple_stubs_layer_behavior112,3123
253
+ def test_multiple_stubs_work_with_same_partial_mock_proxytest_multiple_stubs_work_with_same_partial_mock_proxy105,2958
254
+ def test_multiple_stubs_layer_behaviortest_multiple_stubs_layer_behavior112,3130
206
255
 
207
256
  test/test_default_framework_adapter.rb,475
208
257
  class TestFlexmockDefaultFrameworkAdapter < Test::Unit::TestCaseTestFlexmockDefaultFrameworkAdapter15,352
@@ -212,92 +261,130 @@ class TestFlexmockDefaultFrameworkAdapter < Test::Unit::TestCaseTestFlexmockDef
212
261
  def test_assert_equal_doesnt_raise_exceptiontest_assert_equal_doesnt_raise_exception30,794
213
262
  def test_assert_equal_can_failtest_assert_equal_can_fail34,900
214
263
 
264
+ test/test_demeter_mocking.rb,1377
265
+ class TestDemeterMocking < Test::Unit::TestCaseTestDemeterMocking7,84
266
+ def test_demeter_mockingtest_demeter_mocking11,199
267
+ def test_multiple_demeter_mocks_on_same_branch_is_oktest_multiple_demeter_mocks_on_same_branch_is_ok19,426
268
+ def test_multi_level_deep_demeter_violationtest_multi_level_deep_demeter_violation27,718
269
+ def test_final_method_can_have_multiple_expecationstest_final_method_can_have_multiple_expecations33,903
270
+ def test_conflicting_mock_declarations_raises_an_errortest_conflicting_mock_declarations_raises_an_error41,1194
271
+ def test_conflicting_mock_declarations_in_reverse_order_does_not_raise_errortest_conflicting_mock_declarations_in_reverse_order_does_not_raise_error53,1599
272
+ def test_preestablishing_existing_mock_is_oktest_preestablishing_existing_mock_is_ok63,1943
273
+ def test_quick_defs_can_use_demeter_mockingtest_quick_defs_can_use_demeter_mocking71,2206
274
+ def test_quick_defs_can_use_demeter_mocking_twotest_quick_defs_can_use_demeter_mocking_two81,2515
275
+ def test_errors_on_ill_formed_method_namestest_errors_on_ill_formed_method_names88,2744
276
+ def test_no_errors_on_well_formed_method_namestest_no_errors_on_well_formed_method_names97,2998
277
+ def test_readme_example_1test_readme_example_1106,3216
278
+ def test_readme_example_2test_readme_example_2116,3590
279
+ def test_readme_example_3test_readme_example_3122,3791
280
+
281
+ test/test_deprecated_methods.rb,2237
282
+ class TestFlexMock < Test::Unit::TestCaseTestFlexMock17,420
283
+ def s(&block)s21,526
284
+ def setupsetup25,576
285
+ def test_handletest_handle29,624
286
+ def test_handle_no_blocktest_handle_no_block36,768
287
+ def test_called_with_blocktest_called_with_block42,898
288
+ def test_return_valuetest_return_value49,1096
289
+ def test_handle_missing_methodtest_handle_missing_method54,1201
290
+ def test_ignore_missing_methodtest_ignore_missing_method62,1426
291
+ def test_good_countstest_good_counts68,1557
292
+ def test_bad_countstest_bad_counts76,1696
293
+ def test_undetermined_countstest_undetermined_counts87,1913
294
+ def test_zero_countstest_zero_counts96,2058
295
+ def test_file_io_with_usetest_file_io_with_use105,2237
296
+ def count_lines(stream)count_lines113,2441
297
+ def test_usetest_use121,2559
298
+ def test_failures_during_usetest_failures_during_use130,2716
299
+ def test_sequential_valuestest_sequential_values140,2935
300
+ def test_respond_to_returns_false_for_non_handled_methodstest_respond_to_returns_false_for_non_handled_methods149,3169
301
+ def test_respond_to_returns_true_for_explicit_methodstest_respond_to_returns_true_for_explicit_methods153,3304
302
+ def test_respond_to_returns_true_for_missing_methods_when_ignoring_missingtest_respond_to_returns_true_for_missing_methods_when_ignoring_missing158,3463
303
+ def test_respond_to_returns_true_for_missing_methods_when_ignoring_missing_using_shouldtest_respond_to_returns_true_for_missing_methods_when_ignoring_missing_using_should163,3644
304
+ def test_method_proc_raises_error_on_unknowntest_method_proc_raises_error_on_unknown168,3840
305
+ def test_method_returns_callable_proctest_method_returns_callable_proc174,3958
306
+ def test_method_returns_do_nothing_proc_for_missing_methodstest_method_returns_do_nothing_proc_for_missing_methods183,4214
307
+ class TestDeprecatedOrderingMethods < Test::Unit::TestCaseTestDeprecatedOrderingMethods191,4408
308
+ def test_deprecated_ordering_methodstest_deprecated_ordering_methods195,4531
309
+ class TestAnyInstance < Test::Unit::TestCaseTestAnyInstance207,4927
310
+ class DogDog211,5036
311
+ def barkbark212,5048
312
+ def test_any_instance_still_works_for_backwards_compatibilitytest_any_instance_still_works_for_backwards_compatibility217,5088
313
+
215
314
  test/test_example.rb,278
216
315
  class TemperatureSamplerTemperatureSampler15,352
217
316
  def initialize(sensor)initialize16,377
218
317
  def average_tempaverage_temp20,430
219
- class TestTemperatureSampler < Test::Unit::TestCaseTestTemperatureSampler27,562
220
- def test_tempurature_samplertest_tempurature_sampler28,614
318
+ class TestTemperatureSampler < Test::Unit::TestCaseTestTemperatureSampler26,557
319
+ def test_tempurature_samplertest_tempurature_sampler29,639
221
320
 
222
- test/test_extended_should_receive.rb,797
321
+ test/test_extended_should_receive.rb,809
223
322
  module ExtendedShouldReceiveTestsExtendedShouldReceiveTests15,352
224
323
  def test_accepts_expectation_hashtest_accepts_expectation_hash16,386
225
324
  def test_accepts_list_of_methodstest_accepts_list_of_methods22,552
226
325
  def test_contraints_apply_to_all_expectationstest_contraints_apply_to_all_expectations29,712
227
326
  def test_count_contraints_apply_to_all_expectationstest_count_contraints_apply_to_all_expectations36,1001
228
- def test_multiple_should_receives_are_allowedtest_multiple_should_receives_are_allowed42,1200
229
- class TestExtendedShouldReceiveOnFullMocks < Test::Unit::TestCaseTestExtendedShouldReceiveOnFullMocks50,1417
230
- def setupsetup54,1552
231
- class TestExtendedShouldReceiveOnPartialMocks < Test::Unit::TestCaseTestExtendedShouldReceiveOnPartialMocks61,1622
232
- def setupsetup65,1760
233
-
234
- test/test_mock.rb,1777
235
- class TestFlexMock < Test::Unit::TestCaseTestFlexMock15,352
236
- def setupsetup16,394
237
- def test_handletest_handle20,438
238
- def test_handle_no_blocktest_handle_no_block27,576
239
- def test_called_with_blocktest_called_with_block33,700
240
- def test_return_valuetest_return_value40,892
241
- def test_handle_missing_methodtest_handle_missing_method45,991
242
- def test_ignore_missing_methodtest_ignore_missing_method53,1216
243
- def test_good_countstest_good_counts59,1347
244
- def test_bad_countstest_bad_counts67,1476
245
- def test_undetermined_countstest_undetermined_counts78,1683
246
- def test_zero_countstest_zero_counts87,1822
247
- def test_file_io_with_usetest_file_io_with_use96,1995
248
- def count_lines(stream)count_lines104,2193
249
- def test_usetest_use112,2311
250
- def test_failures_during_usetest_failures_during_use121,2462
251
- def test_sequential_valuestest_sequential_values131,2675
252
- def test_respond_to_returns_false_for_non_handled_methodstest_respond_to_returns_false_for_non_handled_methods140,2903
253
- def test_respond_to_returns_true_for_explicit_methodstest_respond_to_returns_true_for_explicit_methods144,3038
254
- def test_respond_to_returns_true_for_missing_methods_when_ignoring_missingtest_respond_to_returns_true_for_missing_methods_when_ignoring_missing149,3191
255
- def test_respond_to_returns_true_for_missing_methods_when_ignoring_missing_using_shouldtest_respond_to_returns_true_for_missing_methods_when_ignoring_missing_using_should154,3372
256
- def test_method_proc_raises_error_on_unknowntest_method_proc_raises_error_on_unknown159,3568
257
- def test_method_returns_callable_proctest_method_returns_callable_proc165,3686
258
- def test_method_returns_do_nothing_proc_for_missing_methodstest_method_returns_do_nothing_proc_for_missing_methods174,3936
259
-
260
- test/test_naming.rb,404
327
+ def test_multiple_should_receives_are_allowedtest_multiple_should_receives_are_allowed42,1204
328
+ class TestExtendedShouldReceiveOnFullMocks < Test::Unit::TestCaseTestExtendedShouldReceiveOnFullMocks50,1421
329
+ def setupsetup54,1556
330
+ class TestExtendedShouldReceiveOnPartialMockProxies < Test::Unit::TestCaseTestExtendedShouldReceiveOnPartialMockProxies61,1626
331
+ def setupsetup65,1770
332
+
333
+ test/test_flexmodel.rb,528
334
+ class DummyModelDummyModel5,42
335
+ class ChildModel < DummyModelChildModel8,64
336
+ class TestFlexModel < Test::Unit::TestCaseTestFlexModel12,170
337
+ def test_initial_conditionstest_initial_conditions15,243
338
+ def test_classifying_mock_modelstest_classifying_mock_models27,644
339
+ def test_mock_models_have_different_idstest_mock_models_have_different_ids37,891
340
+ def test_mock_models_can_have_quick_defstest_mock_models_can_have_quick_defs43,1042
341
+ def test_mock_models_can_have_blockstest_mock_models_can_have_blocks48,1182
342
+
343
+ test/test_naming.rb,816
261
344
  class TestNaming < Test::Unit::TestCaseTestNaming15,352
262
- def test_nametest_name16,392
263
- def test_name_in_no_handler_found_errortest_name_in_no_handler_found_error21,475
264
- def test_name_in_received_count_errortest_name_in_received_count_error30,705
265
- def test_naming_with_usetest_naming_with_use39,935
266
- def test_naming_with_multiple_mocks_in_usetest_naming_with_multiple_mocks_in_use45,1048
267
-
268
- test/test_new_instances.rb,2475
269
- class TestNewInstances < Test::Unit::TestCaseTestNewInstances15,352
270
- class DogDog18,430
271
- def barkbark19,442
272
- def wagwag22,475
273
- def self.makemake25,507
274
- class CatCat30,550
275
- def initialize(name, &block)initialize32,584
276
- class ConnectionConnection38,692
277
- def initialize(*args)initialize39,711
278
- def send(args)send42,779
279
- def post(args)post45,823
280
- def test_new_instances_allows_stubbing_of_existing_methodstest_new_instances_allows_stubbing_of_existing_methods50,874
281
- def test_any_instance_still_works_for_backwards_compatibilitytest_any_instance_still_works_for_backwards_compatibility58,1097
282
- def test_new_instances_stubs_still_have_existing_methodstest_new_instances_stubs_still_have_existing_methods69,1413
283
- def test_new_instances_will_pass_args_to_newtest_new_instances_will_pass_args_to_new77,1628
284
- def test_new_gets_block_after_restubbingtest_new_gets_block_after_restubbing90,2034
285
- def test_new_instances_stub_verification_happens_on_teardowntest_new_instances_stub_verification_happens_on_teardown103,2359
286
- def test_new_instances_reports_error_on_non_classestest_new_instances_reports_error_on_non_classes113,2722
287
- def test_can_stub_objects_created_with_allocate_instead_of_newtest_can_stub_objects_created_with_allocate_instead_of_new123,3004
288
- def test_can_stub_objects_created_with_arbitrary_class_methodstest_can_stub_objects_created_with_arbitrary_class_methods131,3236
289
- def test_stubbing_arbitrary_class_methods_leaves_new_alonetest_stubbing_arbitrary_class_methods_leaves_new_alone138,3461
290
- def test_stubbing_new_and_allocate_doesnt_double_stub_objects_on_newtest_stubbing_new_and_allocate_doesnt_double_stub_objects_on_new145,3676
291
- def test_stubbing_new_and_allocate_doesnt_double_stub_objects_on_allocatetest_stubbing_new_and_allocate_doesnt_double_stub_objects_on_allocate154,3878
292
- def test_blocks_on_new_do_not_have_stubs_installedtest_blocks_on_new_do_not_have_stubs_installed167,4345
293
- def test_new_instances_accept_chained_expectationstest_new_instances_accept_chained_expectations181,4685
294
- def test_fancy_use_of_chained_should_receivedtest_fancy_use_of_chained_should_received189,4957
295
- def test_writable_accessorstest_writable_accessors194,5114
296
- def test_ordering_can_be_specifiedtest_ordering_can_be_specified200,5261
297
- def test_ordering_can_be_specified_in_groupstest_ordering_can_be_specified_in_groups208,5457
298
- def redirect_errorredirect_error218,5752
299
-
300
- test/test_partial_mock.rb,3046
345
+ def test_nametest_name18,424
346
+ def test_name_in_no_handler_found_errortest_name_in_no_handler_found_error23,507
347
+ def test_name_in_received_count_errortest_name_in_received_count_error32,733
348
+ def test_naming_with_usetest_naming_with_use41,963
349
+ def test_naming_with_multiple_mocks_in_usetest_naming_with_multiple_mocks_in_use47,1080
350
+ def test_inspect_returns_reasonable_nametest_inspect_returns_reasonable_name54,1268
351
+ def test_mock_can_override_inspecttest_mock_can_override_inspect61,1452
352
+ class DummyDummy68,1655
353
+ def inspectinspect69,1669
354
+ def test_partial_mocks_use_original_inspecttest_partial_mocks_use_original_inspect74,1722
355
+ def test_partial_mocks_can_override_inspecttest_partial_mocks_can_override_inspect80,1886
356
+
357
+ test/test_new_instances.rb,2299
358
+ class TestNewInstances < Test::Unit::TestCaseTestNewInstances16,382
359
+ class DogDog20,494
360
+ def barkbark21,506
361
+ def wagwag24,539
362
+ def self.makemake27,571
363
+ class CatCat32,614
364
+ def initialize(name, &block)initialize34,648
365
+ class ConnectionConnection40,756
366
+ def initialize(*args)initialize41,775
367
+ def send(args)send44,843
368
+ def post(args)post47,887
369
+ def test_new_instances_allows_stubbing_of_existing_methodstest_new_instances_allows_stubbing_of_existing_methods52,938
370
+ def test_new_instances_stubs_still_have_existing_methodstest_new_instances_stubs_still_have_existing_methods60,1161
371
+ def test_new_instances_will_pass_args_to_newtest_new_instances_will_pass_args_to_new68,1376
372
+ def test_new_gets_block_after_restubbingtest_new_gets_block_after_restubbing81,1782
373
+ def test_new_instances_stub_verification_happens_on_teardowntest_new_instances_stub_verification_happens_on_teardown94,2107
374
+ def test_new_instances_reports_error_on_non_classestest_new_instances_reports_error_on_non_classes104,2470
375
+ def test_can_stub_objects_created_with_allocate_instead_of_newtest_can_stub_objects_created_with_allocate_instead_of_new114,2752
376
+ def test_can_stub_objects_created_with_arbitrary_class_methodstest_can_stub_objects_created_with_arbitrary_class_methods122,2984
377
+ def test_stubbing_arbitrary_class_methods_leaves_new_alonetest_stubbing_arbitrary_class_methods_leaves_new_alone129,3209
378
+ def test_stubbing_new_and_allocate_doesnt_double_stub_objects_on_newtest_stubbing_new_and_allocate_doesnt_double_stub_objects_on_new136,3424
379
+ def test_stubbing_new_and_allocate_doesnt_double_stub_objects_on_allocatetest_stubbing_new_and_allocate_doesnt_double_stub_objects_on_allocate145,3626
380
+ def test_blocks_on_new_do_not_have_stubs_installedtest_blocks_on_new_do_not_have_stubs_installed158,4093
381
+ def test_new_instances_accept_chained_expectationstest_new_instances_accept_chained_expectations172,4433
382
+ def test_fancy_use_of_chained_should_receivedtest_fancy_use_of_chained_should_received180,4705
383
+ def test_writable_accessorstest_writable_accessors185,4862
384
+ def test_ordering_can_be_specifiedtest_ordering_can_be_specified191,5009
385
+ def test_ordering_can_be_specified_in_groupstest_ordering_can_be_specified_in_groups199,5205
386
+
387
+ test/test_partial_mock.rb,4290
301
388
  class TestStubbing < Test::Unit::TestCaseTestStubbing16,372
302
389
  class DogDog19,446
303
390
  def barkbark20,458
@@ -308,130 +395,157 @@ class TestStubbing < Test::Unit::TestCaseTestStubbing16,372
308
395
  def test_multiple_stubs_on_the_same_object_reuse_the_same_partial_mocktest_multiple_stubs_on_the_same_object_reuse_the_same_partial_mock49,1152
309
396
  def test_multiple_methods_can_be_stubbedtest_multiple_methods_can_be_stubbed54,1301
310
397
  def test_original_behavior_can_be_restoredtest_original_behavior_can_be_restored62,1555
311
- def test_original_missing_behavior_can_be_restoredtest_original_missing_behavior_can_be_restored72,1888
312
- def test_multiple_stubs_on_single_method_can_be_restored_missing_methodtest_multiple_stubs_on_single_method_can_be_restored_missing_method81,2163
313
- def test_original_behavior_is_restored_when_multiple_methods_are_mockedtest_original_behavior_is_restored_when_multiple_methods_are_mocked92,2570
314
- def test_original_behavior_is_restored_on_class_objectstest_original_behavior_is_restored_on_class_objects101,2895
315
- def test_original_behavior_is_restored_on_singleton_methodstest_original_behavior_is_restored_on_singleton_methods108,3142
316
- def obj.hi() :hello endhi110,3225
317
- def test_original_behavior_is_restored_on_singleton_methods_with_multiple_stubstest_original_behavior_is_restored_on_singleton_methods_with_multiple_stubs118,3417
318
- def obj.hi(n) "hello#{n}" endhi120,3520
319
- def test_original_behavior_is_restored_on_nonsingleton_methods_with_multiple_stubstest_original_behavior_is_restored_on_nonsingleton_methods_with_multiple_stubs130,3837
320
- def test_stubbing_file_shouldnt_break_writingtest_stubbing_file_shouldnt_break_writing146,4327
321
- def test_original_behavior_is_restored_even_when_errorstest_original_behavior_is_restored_even_when_errors162,4762
322
- def m.mock_verify() endmock_verify170,5073
323
- def test_not_calling_stubbed_method_is_an_errortest_not_calling_stubbed_method_is_an_error173,5108
324
- def test_mock_is_verified_when_the_stub_is_verifiedtest_mock_is_verified_when_the_stub_is_verified182,5333
325
- def test_stub_can_have_explicit_nametest_stub_can_have_explicit_name191,5599
326
- def test_unamed_stub_will_use_default_naming_conventiontest_unamed_stub_will_use_default_naming_convention197,5766
327
- def test_partials_can_be_defined_in_a_blocktest_partials_can_be_defined_in_a_block203,5950
328
- def test_partials_defining_block_return_real_obj_not_proxytest_partials_defining_block_return_real_obj_not_proxy211,6137
329
- class LiarLiar218,6331
330
- def respond_to?(method_name)respond_to?219,6344
331
- def test_liar_actually_liestest_liar_actually_lies229,6513
332
- def test_partial_mock_where_respond_to_is_true_yet_method_is_not_theretest_partial_mock_where_respond_to_is_true_yet_method_is_not_there234,6612
333
-
334
- test/test_record_mode.rb,1428
335
- module FailureAssertionFailureAssertion15,366
336
- def assert_failsassert_fails17,402
337
- class TestRecordMode < Test::Unit::TestCaseTestRecordMode24,513
338
- def test_recording_mode_workstest_recording_mode_works28,623
339
- def test_arguments_are_passed_to_recording_mode_blocktest_arguments_are_passed_to_recording_mode_block37,815
340
- def test_recording_mode_handles_multiple_returnstest_recording_mode_handles_multiple_returns49,1109
341
- def test_recording_mode_does_not_specify_ordertest_recording_mode_does_not_specify_order60,1376
342
- def test_recording_mode_gets_block_args_tootest_recording_mode_gets_block_args_too71,1622
343
- def test_recording_mode_should_validate_args_with_equalstest_recording_mode_should_validate_args_with_equals84,1934
344
- def test_recording_mode_should_allow_arg_contraint_validationtest_recording_mode_should_allow_arg_contraint_validation95,2167
345
- def test_recording_mode_should_handle_multiplicity_contraintstest_recording_mode_should_handle_multiplicity_contraints106,2405
346
- def test_strict_record_mode_requires_exact_argument_matchestest_strict_record_mode_requires_exact_argument_matches118,2670
347
- def test_strict_record_mode_requires_exact_orderingtest_strict_record_mode_requires_exact_ordering130,2948
348
- def test_strict_record_mode_requires_oncetest_strict_record_mode_requires_once144,3251
349
- def test_strict_record_mode_can_not_failtest_strict_record_mode_can_not_fail157,3524
398
+ def test_original_missing_behavior_can_be_restoredtest_original_missing_behavior_can_be_restored72,1892
399
+ def test_multiple_stubs_on_single_method_can_be_restored_missing_methodtest_multiple_stubs_on_single_method_can_be_restored_missing_method81,2171
400
+ def test_original_behavior_is_restored_when_multiple_methods_are_mockedtest_original_behavior_is_restored_when_multiple_methods_are_mocked92,2582
401
+ def test_original_behavior_is_restored_on_class_objectstest_original_behavior_is_restored_on_class_objects101,2911
402
+ def test_original_behavior_is_restored_on_singleton_methodstest_original_behavior_is_restored_on_singleton_methods108,3162
403
+ def obj.hi() :hello endhi110,3245
404
+ def test_original_behavior_is_restored_on_singleton_methods_with_multiple_stubstest_original_behavior_is_restored_on_singleton_methods_with_multiple_stubs118,3441
405
+ def obj.hi(n) "hello#{n}" endhi120,3544
406
+ def test_original_behavior_is_restored_on_nonsingleton_methods_with_multiple_stubstest_original_behavior_is_restored_on_nonsingleton_methods_with_multiple_stubs130,3865
407
+ def test_stubbing_file_shouldnt_break_writingtest_stubbing_file_shouldnt_break_writing146,4359
408
+ def test_original_behavior_is_restored_even_when_errorstest_original_behavior_is_restored_even_when_errors162,4798
409
+ def m.flexmock_verify() endflexmock_verify170,5117
410
+ def test_not_calling_stubbed_method_is_an_errortest_not_calling_stubbed_method_is_an_error173,5156
411
+ def test_mock_is_verified_when_the_stub_is_verifiedtest_mock_is_verified_when_the_stub_is_verified182,5385
412
+ def test_stub_can_have_explicit_nametest_stub_can_have_explicit_name191,5655
413
+ def test_unamed_stub_will_use_default_naming_conventiontest_unamed_stub_will_use_default_naming_convention197,5834
414
+ def test_partials_can_be_defined_in_a_blocktest_partials_can_be_defined_in_a_block203,6030
415
+ def test_partials_defining_block_return_real_obj_not_proxytest_partials_defining_block_return_real_obj_not_proxy211,6217
416
+ def test_partial_mocks_always_return_domain_objecttest_partial_mocks_always_return_domain_object218,6411
417
+ def test_domain_objects_do_not_have_mock_methodstest_domain_objects_do_not_have_mock_methods229,6691
418
+ def test_partial_mocks_have_mock_methodstest_partial_mocks_have_mock_methods236,6883
419
+ def test_partial_mocks_do_not_have_mock_methods_after_teardowntest_partial_mocks_do_not_have_mock_methods_after_teardown244,7079
420
+ def test_partial_mocks_with_mock_method_singleton_colision_have_original_defs_restoredtest_partial_mocks_with_mock_method_singleton_colision_have_original_defs_restored253,7329
421
+ def dog.mock() :original endmock255,7436
422
+ class MockColisionMockColision261,7557
423
+ def mockmock262,7578
424
+ def test_partial_mocks_with_mock_method_non_singleton_colision_have_original_defs_restoredtest_partial_mocks_with_mock_method_non_singleton_colision_have_original_defs_restored267,7622
425
+ def test_safe_partial_mocks_do_not_support_mock_methodstest_safe_partial_mocks_do_not_support_mock_methods274,7826
426
+ def test_safe_partial_mocks_require_blocktest_safe_partial_mocks_require_block282,8054
427
+ def test_safe_partial_mocks_are_actually_mockedtest_safe_partial_mocks_are_actually_mocked287,8192
428
+ class LiarLiar292,8362
429
+ def respond_to?(method_name)respond_to?293,8375
430
+ def test_liar_actually_liestest_liar_actually_lies303,8544
431
+ def test_partial_mock_where_respond_to_is_true_yet_method_is_not_theretest_partial_mock_where_respond_to_is_true_yet_method_is_not_there309,8696
432
+
433
+ test/test_record_mode.rb,1339
434
+ class TestRecordMode < Test::Unit::TestCaseTestRecordMode16,390
435
+ def test_recording_mode_workstest_recording_mode_works20,505
436
+ def test_arguments_are_passed_to_recording_mode_blocktest_arguments_are_passed_to_recording_mode_block28,687
437
+ def test_recording_mode_handles_multiple_returnstest_recording_mode_handles_multiple_returns39,962
438
+ def test_recording_mode_does_not_specify_ordertest_recording_mode_does_not_specify_order50,1229
439
+ def test_recording_mode_gets_block_args_tootest_recording_mode_gets_block_args_too61,1475
440
+ def test_recording_mode_should_validate_args_with_equalstest_recording_mode_should_validate_args_with_equals73,1757
441
+ def test_recording_mode_should_allow_arg_contraint_validationtest_recording_mode_should_allow_arg_contraint_validation84,1992
442
+ def test_recording_mode_should_handle_multiplicity_contraintstest_recording_mode_should_handle_multiplicity_contraints95,2233
443
+ def test_strict_record_mode_requires_exact_argument_matchestest_strict_record_mode_requires_exact_argument_matches107,2500
444
+ def test_strict_record_mode_requires_exact_orderingtest_strict_record_mode_requires_exact_ordering119,2780
445
+ def test_strict_record_mode_requires_oncetest_strict_record_mode_requires_once133,3085
446
+ def test_strict_record_mode_can_not_failtest_strict_record_mode_can_not_fail146,3360
350
447
 
351
448
  test/test_samples.rb,142
352
449
  class TestSamples < Test::Unit::TestCaseTestSamples17,378
353
450
  def test_file_iotest_file_io25,748
354
451
  def count_lines(file)count_lines33,999
355
452
 
356
- test/test_should_receive.rb,6840
453
+ test/test_should_receive.rb,8729
357
454
  def mock_top_level_functionmock_top_level_function15,352
358
455
  module KernelKernel20,394
359
456
  def mock_kernel_functionmock_kernel_function21,408
360
457
  class TestFlexMockShoulds < Test::Unit::TestCaseTestFlexMockShoulds26,455
361
- def test_defaultstest_defaults35,871
362
- def test_returns_with_valuetest_returns_with_value44,1039
363
- def test_returns_with_multiple_valuestest_returns_with_multiple_values52,1208
364
- def test_returns_with_blocktest_returns_with_block63,1468
365
- def test_and_returns_aliastest_and_returns_alias72,1671
366
- class MyError < RuntimeErrorMyError79,1808
367
- def test_and_raises_with_exception_class_throws_exceptiontest_and_raises_with_exception_class_throws_exception82,1846
368
- def test_and_raises_with_arguments_throws_exception_made_with_argstest_and_raises_with_arguments_throws_exception_made_with_args91,2055
369
- def test_and_raises_with_a_specific_exception_throws_the_exceptiontest_and_raises_with_a_specific_exception_throws_the_exception101,2336
370
- def test_raises_is_an_alias_for_and_raisetest_raises_is_an_alias_for_and_raise112,2606
371
- def test_multiple_expectationstest_multiple_expectations121,2811
372
- def test_with_no_args_with_no_argstest_with_no_args_with_no_args131,3048
373
- def test__with_no_args_but_with_argstest__with_no_args_but_with_args138,3176
374
- def test_with_any_argstest_with_any_args147,3376
375
- def test_with_any_single_arg_matchingtest_with_any_single_arg_matching157,3554
376
- def test_with_any_single_arg_nonmatchingtest_with_any_single_arg_nonmatching165,3747
377
- def test_with_equal_arg_matchingtest_with_equal_arg_matching175,3982
378
- def test_with_equal_arg_nonmatchingtest_with_equal_arg_nonmatching182,4145
379
- def test_with_arbitrary_arg_matchingtest_with_arbitrary_arg_matching191,4382
380
- def test_args_matching_with_regextest_args_matching_with_regex206,4802
381
- def test_arg_matching_with_regex_matching_non_stringtest_arg_matching_with_regex_matching_non_string218,5129
382
- def test_arg_matching_with_classtest_arg_matching_with_class225,5306
383
- def test_arg_matching_with_no_matchtest_arg_matching_with_no_match236,5596
384
- def test_arg_matching_with_string_doesnt_over_matchtest_arg_matching_with_string_doesnt_over_match245,5809
385
- def test_block_arg_given_to_no_argstest_block_arg_given_to_no_args254,6028
386
- def test_block_arg_given_to_matching_proctest_block_arg_given_to_matching_proc263,6232
387
- def test_arg_matching_precedence_when_best_firsttest_arg_matching_precedence_when_best_first274,6517
388
- def test_arg_matching_precedence_when_best_last_but_still_matches_firsttest_arg_matching_precedence_when_best_last_but_still_matches_first282,6726
389
- def test_never_and_never_calledtest_never_and_never_called290,6958
390
- def test_never_and_called_oncetest_never_and_called_once296,7073
391
- def test_once_called_oncetest_once_called_once305,7269
392
- def test_once_but_never_calledtest_once_but_never_called312,7403
393
- def test_once_but_called_twicetest_once_but_called_twice320,7590
394
- def test_twice_and_called_twicetest_twice_and_called_twice330,7809
395
- def test_zero_or_more_called_zerotest_zero_or_more_called_zero338,7964
396
- def test_zero_or_more_called_oncetest_zero_or_more_called_once344,8086
397
- def test_zero_or_more_called_100test_zero_or_more_called_100351,8219
398
- def test_timestest_times358,8365
399
- def test_at_least_called_oncetest_at_least_called_once365,8506
400
- def test_at_least_but_never_calledtest_at_least_but_never_called372,8653
401
- def test_at_least_once_but_called_twicetest_at_least_once_but_called_twice380,8856
402
- def test_at_least_and_exacttest_at_least_and_exact388,9027
403
- def test_at_most_but_never_calledtest_at_most_but_never_called398,9257
404
- def test_at_most_called_oncetest_at_most_called_once404,9393
405
- def test_at_most_called_twicetest_at_most_called_twice411,9538
406
- def test_at_most_and_at_least_called_nevertest_at_most_and_at_least_called_never421,9766
407
- def test_at_most_and_at_least_called_oncetest_at_most_and_at_least_called_once429,9991
408
- def test_at_most_and_at_least_called_twicetest_at_most_and_at_least_called_twice436,10164
409
- def test_at_most_and_at_least_called_three_timestest_at_most_and_at_least_called_three_times444,10352
410
- def test_call_counts_only_apply_to_matching_argstest_call_counts_only_apply_to_matching_args455,10630
411
- def test_call_counts_only_apply_to_matching_args_with_mismatchtest_call_counts_only_apply_to_matching_args_with_mismatch467,10908
412
- def test_ordered_calls_in_ordertest_ordered_calls_in_order483,11341
413
- def test_ordered_calls_out_of_ordertest_ordered_calls_out_of_order493,11513
414
- def test_order_calls_with_different_arg_lists_and_in_ordertest_order_calls_with_different_arg_lists_and_in_order505,11764
415
- def test_order_calls_with_different_arg_lists_and_out_of_ordertest_order_calls_with_different_arg_lists_and_out_of_order515,12007
416
- def test_unordered_calls_do_not_effect_ordered_testingtest_unordered_calls_do_not_effect_ordered_testing527,12323
417
- def test_ordered_with_multiple_calls_is_oktest_ordered_with_multiple_calls_is_ok541,12593
418
- def test_grouped_ordering_with_numberstest_grouped_ordering_with_numbers553,12804
419
- def test_grouped_ordering_with_symbolstest_grouped_ordering_with_symbols568,13125
420
- def test_explicit_ordering_mixed_with_implicit_ordering_should_not_overlaptest_explicit_ordering_mixed_with_implicit_ordering_should_not_overlap583,13487
421
- def test_explicit_ordering_with_explicit_misorderstest_explicit_ordering_with_explicit_misorders593,13860
422
- def test_ordering_with_explicit_no_args_matches_correctlytest_ordering_with_explicit_no_args_matches_correctly609,14391
423
- def test_ordering_with_any_arg_matching_correctly_matchestest_ordering_with_any_arg_matching_correctly_matches621,14768
424
- def test_expectation_formatingtest_expectation_formating632,15082
425
- def test_multi_expectation_formattingtest_multi_expectation_formatting637,15266
426
- def test_explicit_ordering_with_limits_allow_multiple_return_valuestest_explicit_ordering_with_limits_allow_multiple_return_values642,15409
427
- def test_global_methods_can_be_mockedtest_global_methods_can_be_mocked661,16120
428
- def test_kernel_methods_can_be_mockedtest_kernel_methods_can_be_mocked667,16308
429
- def test_undefing_kernel_methods_dont_effect_other_mockstest_undefing_kernel_methods_dont_effect_other_mocks673,16490
430
- def assert_failure(message=nil)assert_failure684,16920
431
- class TestFlexMockShouldsWithInclude < Test::Unit::TestCaseTestFlexMockShouldsWithInclude698,17270
432
- def test_include_enables_unqualified_arg_type_referencestest_include_enables_unqualified_arg_type_references700,17364
433
- class TestFlexMockArgTypesDontLeak < Test::Unit::TestCaseTestFlexMockArgTypesDontLeak708,17528
434
- def test_unqualified_arg_type_references_are_undefined_by_defaulttest_unqualified_arg_type_references_are_undefined_by_default709,17586
458
+ def test_defaultstest_defaults38,999
459
+ def test_returns_with_valuetest_returns_with_value47,1167
460
+ def test_returns_with_multiple_valuestest_returns_with_multiple_values55,1336
461
+ def test_multiple_returnstest_multiple_returns66,1596
462
+ def test_returns_with_blocktest_returns_with_block77,1856
463
+ def test_return_with_and_without_block_interleavedtest_return_with_and_without_block_interleaved86,2059
464
+ def test_and_returns_aliastest_and_returns_alias96,2339
465
+ def test_and_yield_will_continue_to_yield_the_same_valuetest_and_yield_will_continue_to_yield_the_same_value103,2476
466
+ def test_and_yield_with_multiple_values_yields_the_valuestest_and_yield_with_multiple_values_yields_the_values111,2722
467
+ def test_multiple_yields_are_done_sequentiallytest_multiple_yields_are_done_sequentially118,2932
468
+ def test_failure_if_no_block_giventest_failure_if_no_block_given127,3204
469
+ def test_failure_different_return_value_than_yield_returntest_failure_different_return_value_than_yield_return134,3387
470
+ def test_multiple_yieldstest_multiple_yields143,3673
471
+ def test_multiple_yields_will_yield_the_last_value_settest_multiple_yields_will_yield_the_last_value_set151,3911
472
+ def test_yielding_then_not_yielding_and_then_yielding_againtest_yielding_then_not_yielding_and_then_yielding_again162,4288
473
+ def test_yields_syntaxtest_yields_syntax173,4635
474
+ class MyError < RuntimeErrorMyError180,4780
475
+ def test_and_raises_with_exception_class_throws_exceptiontest_and_raises_with_exception_class_throws_exception183,4818
476
+ def test_and_raises_with_arguments_throws_exception_made_with_argstest_and_raises_with_arguments_throws_exception_made_with_args192,5027
477
+ def test_and_raises_with_a_specific_exception_throws_the_exceptiontest_and_raises_with_a_specific_exception_throws_the_exception202,5308
478
+ def test_raises_is_an_alias_for_and_raisetest_raises_is_an_alias_for_and_raise213,5578
479
+ def test_multiple_and_raise_clauses_will_be_done_sequentiallytest_multiple_and_raise_clauses_will_be_done_sequentially222,5783
480
+ def test_and_throw_will_throw_a_symboltest_and_throw_will_throw_a_symbol234,6181
481
+ def test_and_throw_with_expression_will_throwtest_and_throw_with_expression_will_throw245,6424
482
+ def test_throws_is_an_alias_for_and_throwtest_throws_is_an_alias_for_and_throw256,6706
483
+ def test_multiple_throws_will_be_done_sequentiallytest_multiple_throws_will_be_done_sequentially267,6981
484
+ def test_multiple_expectationstest_multiple_expectations279,7311
485
+ def test_with_no_args_with_no_argstest_with_no_args_with_no_args289,7548
486
+ def test_with_no_args_but_with_argstest_with_no_args_but_with_args296,7676
487
+ def test_with_any_argstest_with_any_args305,7875
488
+ def test_with_any_single_arg_matchingtest_with_any_single_arg_matching315,8053
489
+ def test_with_any_single_arg_nonmatchingtest_with_any_single_arg_nonmatching323,8246
490
+ def test_with_equal_arg_matchingtest_with_equal_arg_matching333,8481
491
+ def test_with_equal_arg_nonmatchingtest_with_equal_arg_nonmatching340,8644
492
+ def test_with_arbitrary_arg_matchingtest_with_arbitrary_arg_matching349,8881
493
+ def test_args_matching_with_regextest_args_matching_with_regex364,9301
494
+ def test_arg_matching_with_regex_matching_non_stringtest_arg_matching_with_regex_matching_non_string376,9628
495
+ def test_arg_matching_with_classtest_arg_matching_with_class383,9805
496
+ def test_arg_matching_with_no_matchtest_arg_matching_with_no_match394,10095
497
+ def test_arg_matching_with_string_doesnt_over_matchtest_arg_matching_with_string_doesnt_over_match403,10308
498
+ def test_block_arg_given_to_no_argstest_block_arg_given_to_no_args412,10527
499
+ def test_block_arg_given_to_matching_proctest_block_arg_given_to_matching_proc421,10731
500
+ def test_arg_matching_precedence_when_best_firsttest_arg_matching_precedence_when_best_first432,11016
501
+ def test_arg_matching_precedence_when_best_last_but_still_matches_firsttest_arg_matching_precedence_when_best_last_but_still_matches_first440,11225
502
+ def test_never_and_never_calledtest_never_and_never_called448,11457
503
+ def test_never_and_called_oncetest_never_and_called_once454,11572
504
+ def test_once_called_oncetest_once_called_once463,11768
505
+ def test_once_but_never_calledtest_once_but_never_called470,11902
506
+ def test_once_but_called_twicetest_once_but_called_twice478,12089
507
+ def test_twice_and_called_twicetest_twice_and_called_twice488,12308
508
+ def test_zero_or_more_called_zerotest_zero_or_more_called_zero496,12463
509
+ def test_zero_or_more_called_oncetest_zero_or_more_called_once502,12585
510
+ def test_zero_or_more_called_100test_zero_or_more_called_100509,12718
511
+ def test_timestest_times516,12864
512
+ def test_at_least_called_oncetest_at_least_called_once523,13005
513
+ def test_at_least_but_never_calledtest_at_least_but_never_called530,13152
514
+ def test_at_least_once_but_called_twicetest_at_least_once_but_called_twice538,13355
515
+ def test_at_least_and_exacttest_at_least_and_exact546,13526
516
+ def test_at_most_but_never_calledtest_at_most_but_never_called556,13756
517
+ def test_at_most_called_oncetest_at_most_called_once562,13892
518
+ def test_at_most_called_twicetest_at_most_called_twice569,14037
519
+ def test_at_most_and_at_least_called_nevertest_at_most_and_at_least_called_never579,14265
520
+ def test_at_most_and_at_least_called_oncetest_at_most_and_at_least_called_once587,14490
521
+ def test_at_most_and_at_least_called_twicetest_at_most_and_at_least_called_twice594,14663
522
+ def test_at_most_and_at_least_called_three_timestest_at_most_and_at_least_called_three_times602,14851
523
+ def test_call_counts_only_apply_to_matching_argstest_call_counts_only_apply_to_matching_args613,15129
524
+ def test_call_counts_only_apply_to_matching_args_with_mismatchtest_call_counts_only_apply_to_matching_args_with_mismatch625,15407
525
+ def test_ordered_calls_in_order_will_passtest_ordered_calls_in_order_will_pass641,15840
526
+ def test_ordered_calls_out_of_order_will_failtest_ordered_calls_out_of_order_will_fail651,16022
527
+ def test_order_calls_with_different_arg_lists_and_in_order_will_passtest_order_calls_with_different_arg_lists_and_in_order_will_pass663,16283
528
+ def test_order_calls_with_different_arg_lists_and_out_of_order_will_failtest_order_calls_with_different_arg_lists_and_out_of_order_will_fail673,16536
529
+ def test_unordered_calls_do_not_effect_ordered_testingtest_unordered_calls_do_not_effect_ordered_testing685,16862
530
+ def test_ordered_with_multiple_calls_will_passtest_ordered_with_multiple_calls_will_pass699,17132
531
+ def test_grouped_ordering_with_numberstest_grouped_ordering_with_numbers711,17347
532
+ def test_grouped_ordering_with_symbolstest_grouped_ordering_with_symbols726,17668
533
+ def test_explicit_ordering_mixed_with_implicit_ordering_should_not_overlaptest_explicit_ordering_mixed_with_implicit_ordering_should_not_overlap741,18030
534
+ def test_explicit_ordering_with_explicit_misorderstest_explicit_ordering_with_explicit_misorders751,18403
535
+ def test_ordering_with_explicit_no_args_matches_correctlytest_ordering_with_explicit_no_args_matches_correctly767,18934
536
+ def test_ordering_with_any_arg_matching_correctly_matchestest_ordering_with_any_arg_matching_correctly_matches779,19311
537
+ def test_ordering_between_mocks_is_not_normally_definedtest_ordering_between_mocks_is_not_normally_defined790,19623
538
+ def test_ordering_between_mocks_is_honored_for_global_orderingtest_ordering_between_mocks_is_honored_for_global_ordering802,19879
539
+ def test_expectation_formatingtest_expectation_formating814,20197
540
+ def test_multi_expectation_formattingtest_multi_expectation_formatting823,20425
541
+ def test_explicit_ordering_with_limits_allow_multiple_return_valuestest_explicit_ordering_with_limits_allow_multiple_return_values829,20588
542
+ def test_global_methods_can_be_mockedtest_global_methods_can_be_mocked848,21299
543
+ def test_kernel_methods_can_be_mockedtest_kernel_methods_can_be_mocked854,21483
544
+ def test_undefing_kernel_methods_dont_effect_other_mockstest_undefing_kernel_methods_dont_effect_other_mocks860,21661
545
+ class TestFlexMockShouldsWithInclude < Test::Unit::TestCaseTestFlexMockShouldsWithInclude870,21934
546
+ def test_include_enables_unqualified_arg_type_referencestest_include_enables_unqualified_arg_type_references872,22028
547
+ class TestFlexMockArgTypesDontLeak < Test::Unit::TestCaseTestFlexMockArgTypesDontLeak880,22192
548
+ def test_unqualified_arg_type_references_are_undefined_by_defaulttest_unqualified_arg_type_references_are_undefined_by_default881,22250
435
549
 
436
550
  test/test_tu_integration.rb,1570
437
551
  class TestTuIntegrationFlexMockMethod < Test::Unit::TestCaseTestTuIntegrationFlexMockMethod15,352