rspec 1.2.4 → 1.2.5
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.
- data.tar.gz.sig +0 -0
- data/History.rdoc +59 -32
- data/Manifest.txt +6 -0
- data/Rakefile +2 -2
- data/examples/passing/options_example.rb +31 -0
- data/examples/passing/options_formatter.rb +20 -0
- data/features/expectations/expect_change.feature +65 -0
- data/features/expectations/expect_error.feature +44 -0
- data/lib/spec/example/example_group_factory.rb +4 -2
- data/lib/spec/example/example_group_methods.rb +5 -1
- data/lib/spec/example/example_group_proxy.rb +8 -0
- data/lib/spec/example/example_matcher.rb +2 -3
- data/lib/spec/example/example_methods.rb +14 -1
- data/lib/spec/example/example_proxy.rb +3 -4
- data/lib/spec/example/subject.rb +7 -7
- data/lib/spec/interop/test.rb +2 -1
- data/lib/spec/matchers/be_close.rb +5 -5
- data/lib/spec/matchers/be_instance_of.rb +2 -2
- data/lib/spec/matchers/be_kind_of.rb +2 -2
- data/lib/spec/matchers/compatibility.rb +2 -2
- data/lib/spec/matchers/eql.rb +4 -4
- data/lib/spec/matchers/equal.rb +18 -8
- data/lib/spec/matchers/extensions/instance_exec.rb +1 -3
- data/lib/spec/matchers/include.rb +4 -4
- data/lib/spec/matchers/match.rb +2 -2
- data/lib/spec/matchers/operator_matcher.rb +3 -2
- data/lib/spec/mocks/methods.rb +9 -0
- data/lib/spec/mocks/mock.rb +34 -24
- data/lib/spec/mocks/proxy.rb +1 -0
- data/lib/spec/mocks/spec_methods.rb +5 -5
- data/lib/spec/runner.rb +1 -2
- data/lib/spec/runner/configuration.rb +0 -0
- data/lib/spec/runner/drb_command_line.rb +2 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +1 -1
- data/lib/spec/runner/formatter/no_op_method_missing.rb +1 -1
- data/lib/spec/version.rb +1 -1
- data/spec/spec/example/example_group_proxy_spec.rb +24 -0
- data/spec/spec/example/example_methods_spec.rb +12 -0
- data/spec/spec/example/predicate_matcher_spec.rb +0 -0
- data/spec/spec/example/subject_spec.rb +16 -6
- data/spec/spec/matchers/change_spec.rb +85 -85
- data/spec/spec/matchers/compatibility_spec.rb +16 -22
- data/spec/spec/matchers/equal_spec.rb +33 -9
- data/spec/spec/matchers/have_spec.rb +1 -8
- data/spec/spec/mocks/mock_ordering_spec.rb +10 -0
- data/spec/spec/mocks/mock_spec.rb +106 -93
- data/spec/spec/mocks/stub_chain_spec.rb +27 -0
- data/spec/spec/mocks/stub_spec.rb +9 -5
- data/spec/spec/runner/configuration_spec.rb +0 -0
- data/spec/spec/runner/drb_command_line_spec.rb +1 -1
- data/spec/spec/runner/formatter/html_formatted-1.8.7.html +31 -46
- data/spec/spec/runner/formatter/html_formatted-1.9.1.html +25 -28
- data/spec/spec/runner/formatter/html_formatter_spec.rb +3 -19
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +3 -18
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +4 -28
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +31 -46
- data/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +7 -10
- data/spec/spec/runner/reporter_spec.rb +1 -1
- data/spec/spec_helper.rb +4 -0
- data/spec/support/macros.rb +29 -0
- metadata +36 -8
- metadata.gz.sig +1 -0
data.tar.gz.sig
ADDED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,10 +1,37 @@
|
|
1
|
-
=== Version 1.2.
|
1
|
+
=== Version 1.2.5 / 2009-04-29
|
2
|
+
|
3
|
+
* enhancements
|
4
|
+
|
5
|
+
* name argument to mock/stub is now optional (closes #782)
|
6
|
+
* you can do mock(:foo => "woo", :bar => "car")
|
7
|
+
* expect { this_block }.to change{this.expression}.from(old_value).to(new_value)
|
8
|
+
* expect { this_block }.to raise_error
|
9
|
+
* better failiure messages for equal matcher (James Byrne). Closes #804.
|
10
|
+
* add stub_chain method
|
11
|
+
* also alias_method :stub, :stub!, so you can stub with less bang
|
12
|
+
* added options to example_group_proxy
|
13
|
+
|
14
|
+
* bug fixes
|
15
|
+
|
16
|
+
* ensure correct handling of ordered message expectations with duplicate
|
17
|
+
expectations (NigelThorne). Closes #793.
|
18
|
+
* get matcher backwards compat working w/ ruby 19
|
19
|
+
* don't define instance_exec unless it is not defined
|
20
|
+
* was doing a version check, but turns out that didn't cover alternative
|
21
|
+
implementations like JRuby
|
22
|
+
* fix bug where in some circumstances, loading lib/spec/interop/test.rb
|
23
|
+
raised an error (tsechingho). Closes #803.
|
24
|
+
* make sure specs only run against spec server when using drb (patch from Chuck Grindel). Closes #797.
|
25
|
+
* remove deprecation warning in example_pending when using FailingExamplesFormatter. Closes #794.
|
26
|
+
* Access explicit subject from nested groups of arbitrary depth. Closes #756.
|
27
|
+
|
28
|
+
=== Version 1.2.4 / 2009-04-13
|
2
29
|
|
3
30
|
* bug fix
|
4
31
|
|
5
32
|
* just one - update the manifest
|
6
33
|
|
7
|
-
=== Version 1.2.3
|
34
|
+
=== Version 1.2.3 / 2009-04-13
|
8
35
|
|
9
36
|
* deprecations
|
10
37
|
|
@@ -38,9 +65,9 @@
|
|
38
65
|
|
39
66
|
Bug-fix release (fixes regression introduced in 1.2.1)
|
40
67
|
|
41
|
-
* bug fixes
|
68
|
+
* bug fixes
|
42
69
|
|
43
|
-
* fixed bug in which spec_parser raised an error for custom example group
|
70
|
+
* fixed bug in which spec_parser raised an error for custom example group
|
44
71
|
base classes
|
45
72
|
|
46
73
|
=== Version 1.2.1 / 2009-03-22
|
@@ -64,7 +91,7 @@ See Upgrade.rdoc for information about upgrading to rspec-1.2.1
|
|
64
91
|
* pass ExampleProxy to example_started(). Closes #738, #743
|
65
92
|
* thanks to Tobias Grimm (Eclipse) fort the patch and Roman Chernyatchik
|
66
93
|
(JetBrains, RubyMine) for the assist
|
67
|
-
|
94
|
+
|
68
95
|
* bug fixes
|
69
96
|
|
70
97
|
* subject (implicit or explicit) is now properly inherited by nested groups. Closes #744.
|
@@ -85,19 +112,19 @@ See Upgrade.rdoc for information about upgrading to rspec-1.2.1
|
|
85
112
|
* you can still use setup and teardown if you're using
|
86
113
|
Test::Unit::TestCase as the base ExampleGroup class (which is implicit
|
87
114
|
in rspec-rails)
|
88
|
-
|
115
|
+
|
89
116
|
* The matcher protocol has been improved. The old protocol is still
|
90
117
|
supported, so as long as you're not monkey patching rspec's built-in
|
91
118
|
matchers, or using extension libraries that do, this should not affect
|
92
119
|
you. If you run into trouble, you'll just need to change:
|
93
|
-
|
120
|
+
|
94
121
|
failure_message => failure_message_for_should
|
95
122
|
negative_failure_message => failure_message_for_should_not
|
96
|
-
|
123
|
+
|
97
124
|
* All references to rubygems have been removed from within rspec's code.
|
98
|
-
|
125
|
+
|
99
126
|
* NOTE that they have been restored in 1.2.1, above
|
100
|
-
|
127
|
+
|
101
128
|
* See http://gist.github.com/54177 for rationale and suggestions on
|
102
129
|
alternative approaches to loading rubygems
|
103
130
|
|
@@ -110,7 +137,7 @@ See Upgrade.rdoc for information about upgrading to rspec-1.2.1
|
|
110
137
|
|
111
138
|
* cleaner integration with with heckle-1.4.2
|
112
139
|
* allow registering example groups with a path-like key (Pat Maddox)
|
113
|
-
* start DRb service at "druby://localhost:0" (Hongli Lai) - See http://redmine.ruby-lang.org/issues/show/496
|
140
|
+
* start DRb service at "druby://localhost:0" (Hongli Lai) - See http://redmine.ruby-lang.org/issues/show/496
|
114
141
|
* consistent reporting of errors as failures
|
115
142
|
* added spec/test/unit as more intuitive path to loading test/unit interop lib
|
116
143
|
* added explicit autorun feature for running specs with ruby command
|
@@ -120,7 +147,7 @@ See Upgrade.rdoc for information about upgrading to rspec-1.2.1
|
|
120
147
|
* added --format silent (l) option, which is now the default when running --heckle (Bob Aman)
|
121
148
|
* sexy new custom matcher creation (Corey Haines & David Chelimsky - initial concept by Yehuda Katz)
|
122
149
|
* improved matcher protocol - old one is still supported, but new one is cleaner and prefered
|
123
|
-
|
150
|
+
|
124
151
|
* bug fixes
|
125
152
|
|
126
153
|
* support delegating operator matchers to subject with should_not
|
@@ -137,7 +164,7 @@ not intended:
|
|
137
164
|
obj.stub!(:msg)
|
138
165
|
obj.msg
|
139
166
|
obj.should_receive(:msg)
|
140
|
-
|
167
|
+
|
141
168
|
That would pass in 1.1.11, but should not have been allowed to, since the
|
142
169
|
message is received before the expectation is set. This was reported (#637)
|
143
170
|
and fixed for release 1.1.12, but may cause unexpected failures if you had
|
@@ -171,7 +198,7 @@ WARNING: mock.should_receive(:msg).with(an_instance_of(klass)) now correctly use
|
|
171
198
|
* config.include now accepts an array of types (config.include(Helpers, :type => [:view, :controller]))
|
172
199
|
* added be_a and be_an expectation matchers
|
173
200
|
* added instance_of and kind_of mock argument matchers
|
174
|
-
|
201
|
+
|
175
202
|
* 9 bug fixes
|
176
203
|
|
177
204
|
* fixed bug where {:a => 1, :b => 2}.should include(:a, :b) failed (Yossef Mendelssohn)
|
@@ -183,7 +210,7 @@ WARNING: mock.should_receive(:msg).with(an_instance_of(klass)) now correctly use
|
|
183
210
|
* Fix spec_path for shared groups (Zach Dennis). Closes #615.
|
184
211
|
* stubbed message expectation not verified if it has been called *before* the expectation (Matthias Hennemeyer). Closes #637.
|
185
212
|
* stubs calculate return value by executing block passed to #and_return (hint from Aisha Fenton). Closes #642.
|
186
|
-
|
213
|
+
|
187
214
|
=== Version 1.1.11 / 2008-10-24
|
188
215
|
|
189
216
|
* 1 major enhancement
|
@@ -314,7 +341,7 @@ metaclass call with (class << self; self; end) and all will be well.
|
|
314
341
|
* Deprecation warnings for specs that assume auto-inclusion of modules. Closes #326 (patch from Scott Taylor)
|
315
342
|
* mock.should_not_receive(:anything) fails fast (once again)
|
316
343
|
* Patch from Antti Tarvainen to stop files from being loaded repeatedly when running heckle. Closes #333.
|
317
|
-
* Fixed bug in which session object in example was not the same instance used in the controller. Closes #331.
|
344
|
+
* Fixed bug in which session object in example was not the same instance used in the controller. Closes #331.
|
318
345
|
* Applied patch from Antti Tarvainen to fix bug where heckle runs rspec runs heckle runs rspec etc. Closes #280.
|
319
346
|
* Applied patch from Zach Dennis to merge :steps functionality to :steps_for. Closes #324.
|
320
347
|
* Applied patch from Ryan Davis to add eval of block passed to raise_error matcher. Closes #321.
|
@@ -518,8 +545,8 @@ follow the upgrade instructions and run 'script/generate rspec' you'll be fine,
|
|
518
545
|
step you need to manually go into spec_helper.rb and remove the call to that method (if present - it
|
519
546
|
might not be if you haven't upgraded in a while).
|
520
547
|
|
521
|
-
Warning: Implementors of custom formatters. Formatters will now be sent an Example object instead of just a
|
522
|
-
String for #example_started, #example_passed and #example_failed. In certain scenarios
|
548
|
+
Warning: Implementors of custom formatters. Formatters will now be sent an Example object instead of just a
|
549
|
+
String for #example_started, #example_passed and #example_failed. In certain scenarios
|
523
550
|
(Spec::Ui with Spec::Distributed), the formatter must ask the Example for its sequence number instead of
|
524
551
|
keeping track of a sequence number internal to the formatter. Most of you shouldn't need to upgrade
|
525
552
|
your formatters though - the Example#to_s method returns the example name/description, so you should be
|
@@ -559,7 +586,7 @@ able to use the passed Example instance as if it were a String.
|
|
559
586
|
* Fixed [#11903] config.include with behaviour_type 'hash' does not work
|
560
587
|
* Examples without blocks and pending is now reported with a P instead of a *
|
561
588
|
* Pending blocks that now pass are rendered blue
|
562
|
-
* New behaviour for after: If an after block raises an error, the other ones will still run instead of bailing at the first.
|
589
|
+
* New behaviour for after: If an after block raises an error, the other ones will still run instead of bailing at the first.
|
563
590
|
* Made it possible to run spec from RSpec.tmbundle with --drb against a Rails spec_server.
|
564
591
|
* Applied [#11868] Add ability for pending to optionally hold a failing block and to fail when it passes (Patch from Bob Cotton)
|
565
592
|
* Fixed [#11843] watir_behaviour missing from spec_ui gem
|
@@ -683,7 +710,7 @@ This is a bugfix release.
|
|
683
710
|
* Applied [#10567] Call setup and teardown using before and after callbacks
|
684
711
|
|
685
712
|
=== Version 0.9.2
|
686
|
-
This is a quick maintenance release.
|
713
|
+
This is a quick maintenance release.
|
687
714
|
|
688
715
|
* Added some website love
|
689
716
|
* Fixed [#10542] reverse predicate matcher syntax
|
@@ -704,13 +731,13 @@ backwards compatibility). This allows you to express specs like this:
|
|
704
731
|
|
705
732
|
The command line features four new options that give you more control over what specs
|
706
733
|
are being run and in what order. This can be used to verify that your specs are
|
707
|
-
independent (by running in opposite order with --reverse). It can also be used to cut
|
734
|
+
independent (by running in opposite order with --reverse). It can also be used to cut
|
708
735
|
down feedback time by running the most recently modified specs first (--loadby mtime --reverse).
|
709
736
|
|
710
737
|
Further, --example replaces the old --spec option, and it can now take a file name of
|
711
|
-
spec names as an alternative to just a spec name. The --format failing_examples:file.txt
|
712
|
-
option allows you to output an --example compatible file, which makes it possible to only
|
713
|
-
rerun the specs that failed in the last run. Spec::Rails uses all of these four options
|
738
|
+
spec names as an alternative to just a spec name. The --format failing_examples:file.txt
|
739
|
+
option allows you to output an --example compatible file, which makes it possible to only
|
740
|
+
rerun the specs that failed in the last run. Spec::Rails uses all of these four options
|
714
741
|
by default to optimise your RSpec experience.
|
715
742
|
|
716
743
|
There is now a simple configuration model. For Spec::Rails, you do something like this:
|
@@ -727,7 +754,7 @@ RSpec's own mock framework. Just put this:
|
|
727
754
|
Spec::Runner.configure do |config|
|
728
755
|
config.mock_with :mocha
|
729
756
|
end
|
730
|
-
|
757
|
+
|
731
758
|
or this:
|
732
759
|
|
733
760
|
Spec::Runner.configure do |config|
|
@@ -796,7 +823,7 @@ See Spec::DSL::Behaviour for more on predicate_matchers
|
|
796
823
|
* Moved all of the Spec::Rails specs down to the plugins directory - now you can run the specs after you install.
|
797
824
|
* Updated RSpec.tmbundle to the 0.9 syntax and replaced context/specify with describe/it.
|
798
825
|
* Applied [#9232] ActionController::Base#render is sometimes protected (patch from Dan Manges)
|
799
|
-
* Added --reverse option, allowing contexts/specs to be run in reverse order.
|
826
|
+
* Added --reverse option, allowing contexts/specs to be run in reverse order.
|
800
827
|
* Added --loadby option, allowing better control over load order for spec files. mtime and file.txt supported.
|
801
828
|
* Implemented [#8696] --order option (see --reverse and --loadby)
|
802
829
|
* Added describe/it as aliases for context/specify - suggestion from Dan North.
|
@@ -824,7 +851,7 @@ This release introduces a new approach to handling expectations using Expression
|
|
824
851
|
See Upgrade[http://rspec.rubyforge.org/upgrade.html], Spec::Expectations, Spec::Matchers and RELEASE-PLAN for more info.
|
825
852
|
|
826
853
|
This release also improves the spec command line by adding DRb support and making it possible to
|
827
|
-
store command line options in a file. This means a more flexible RSpec experience with Rails,
|
854
|
+
store command line options in a file. This means a more flexible RSpec experience with Rails,
|
828
855
|
Rake and editor plugins like TextMate.
|
829
856
|
|
830
857
|
It also sports myriad new features, bug fixes, patches and general goodness:
|
@@ -976,7 +1003,7 @@ Bug fixes and a couple o' new features.
|
|
976
1003
|
* Added [#6560] controller.session should be available before the action
|
977
1004
|
* Added support for should_have_rjs :visual_effect
|
978
1005
|
* Different printing and colours for unmet expectations (red) and other exceptions (magenta)
|
979
|
-
* Simplified method_missing on mock_methods to make it less invasive on partial mocks.
|
1006
|
+
* Simplified method_missing on mock_methods to make it less invasive on partial mocks.
|
980
1007
|
|
981
1008
|
=== Version 0.7.0
|
982
1009
|
|
@@ -1090,7 +1117,7 @@ RSpec on Rails.
|
|
1090
1117
|
* Applied [#5065] to support using define_method rather than method_missing to capture expected messages on mocks. Thanks to Eero Saynatkari for the tip that made it work.
|
1091
1118
|
* Restructured directories and Modules in order to separate rspec into three distinct Modules: Spec::Expectations, Spec::Runner and Spec::Mocks. This will allow us to more easily integrate other mock frameworks and/or allow test/unit users to take advantage of the expectation API.
|
1092
1119
|
* Applied [#5620] support any boolean method and arbitrary comparisons (5.should_be < 6) (Patch from Mike Williams)
|
1093
|
-
|
1120
|
+
|
1094
1121
|
=== Version 0.6.3
|
1095
1122
|
|
1096
1123
|
This release fixes some minor bugs related to RSpec on Rails
|
@@ -1129,7 +1156,7 @@ This release makes an official commitment to underscore_syntax (with no more sup
|
|
1129
1156
|
* Fixed bug (5292) that caused mock argument matching to fail
|
1130
1157
|
* Converted ALL tests to use underscore syntax
|
1131
1158
|
* Fixed all remaining problems with underscores revealed by converting all the tests to underscores
|
1132
|
-
* Enhanced sugar to support combinations of methods (i.e. once.and_return)
|
1159
|
+
* Enhanced sugar to support combinations of methods (i.e. once.and_return)
|
1133
1160
|
* Simplified helper structure taking advantage of dot/underscore combos (i.e. should.be.an_instance_of, which can be expressed as should be_an_instance_of)
|
1134
1161
|
* Added support for at_most in mocks
|
1135
1162
|
* Added support for should_not_receive(:msg) (will be removing should_receive(:msg).never some time soon)
|
@@ -1183,7 +1210,7 @@ minor enhancements.
|
|
1183
1210
|
* Output of various formatters is now flushed - to get more continuous output.
|
1184
1211
|
|
1185
1212
|
=== Version 0.5.11
|
1186
|
-
This release makes test2spec usable with Rails (with some manual steps).
|
1213
|
+
This release makes test2spec usable with Rails (with some manual steps).
|
1187
1214
|
See http://rspec.rubyforge.org/tools/rails.html for more details
|
1188
1215
|
|
1189
1216
|
* test2spec now correctly translates bodies of helper methods (non- test_*, setup and teardown ones).
|
@@ -1378,7 +1405,7 @@ This release adds some shoulds and improves error reporting
|
|
1378
1405
|
|
1379
1406
|
=== Version 0.1.0
|
1380
1407
|
|
1381
|
-
This is the first preview release of RSpec, a Behaviour-Driven Development library for Ruby
|
1408
|
+
This is the first preview release of RSpec, a Behaviour-Driven Development library for Ruby
|
1382
1409
|
|
1383
1410
|
* Added Rake script with tasks for gems, rdoc etc.
|
1384
1411
|
* Added an XForge task to make release go easier.
|
data/Manifest.txt
CHANGED
@@ -43,6 +43,8 @@ examples/passing/io_processor_spec.rb
|
|
43
43
|
examples/passing/mocking_example.rb
|
44
44
|
examples/passing/multi_threaded_example_group_runner.rb
|
45
45
|
examples/passing/nested_classes_example.rb
|
46
|
+
examples/passing/options_example.rb
|
47
|
+
examples/passing/options_formatter.rb
|
46
48
|
examples/passing/partial_mock_example.rb
|
47
49
|
examples/passing/pending_example.rb
|
48
50
|
examples/passing/predicate_example.rb
|
@@ -60,6 +62,8 @@ features/before_and_after_blocks/before_and_after_blocks.feature
|
|
60
62
|
features/example_groups/example_group_with_should_methods.feature
|
61
63
|
features/example_groups/implicit_docstrings.feature
|
62
64
|
features/example_groups/nested_groups.feature
|
65
|
+
features/expectations/expect_change.feature
|
66
|
+
features/expectations/expect_error.feature
|
63
67
|
features/extensions/custom_example_group.feature
|
64
68
|
features/formatters/custom_formatter.feature
|
65
69
|
features/heckle/heckle.feature
|
@@ -302,6 +306,7 @@ spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb
|
|
302
306
|
spec/spec/mocks/passing_argument_matchers_spec.rb
|
303
307
|
spec/spec/mocks/precise_counts_spec.rb
|
304
308
|
spec/spec/mocks/record_messages_spec.rb
|
309
|
+
spec/spec/mocks/stub_chain_spec.rb
|
305
310
|
spec/spec/mocks/stub_spec.rb
|
306
311
|
spec/spec/mocks/stubbed_message_expectations_spec.rb
|
307
312
|
spec/spec/mocks/twice_counts_spec.rb
|
@@ -359,3 +364,4 @@ spec/spec/runner/spec_spaced.opts
|
|
359
364
|
spec/spec/runner_spec.rb
|
360
365
|
spec/spec/spec_classes.rb
|
361
366
|
spec/spec_helper.rb
|
367
|
+
spec/support/macros.rb
|
data/Rakefile
CHANGED
@@ -57,7 +57,7 @@ namespace :spec do
|
|
57
57
|
t.spec_opts = ['--options', 'spec/spec.opts']
|
58
58
|
t.rcov = true
|
59
59
|
t.rcov_dir = 'coverage'
|
60
|
-
t.rcov_opts = ['--exclude', "kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb
|
60
|
+
t.rcov_opts = ['--exclude', "kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb,^spec/*,bin/spec,examples,/gems,/Library/Ruby,\.autotest,#{ENV['GEM_HOME']}"]
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -104,7 +104,7 @@ task :verify_committed do
|
|
104
104
|
end
|
105
105
|
|
106
106
|
namespace :update do
|
107
|
-
desc "update the
|
107
|
+
desc "update the manifest"
|
108
108
|
task :manifest do
|
109
109
|
system %q[touch Manifest.txt; rake check_manifest | grep -v "(in " | patch]
|
110
110
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# This demonstrates the use of the options hash to support custom reporting.
|
2
|
+
# To see the result, run this command from the project root:
|
3
|
+
#
|
4
|
+
# bin/spec --require examples/passing/options_formatter.rb examples/passing/options_example.rb \
|
5
|
+
# --format OptionsFormatter
|
6
|
+
|
7
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
8
|
+
|
9
|
+
describe "this group will be reported", :report => true do
|
10
|
+
it "this example will be reported", :report => true do
|
11
|
+
# no-op
|
12
|
+
end
|
13
|
+
|
14
|
+
it "this example will not be reported", :report => false do
|
15
|
+
# no-op
|
16
|
+
end
|
17
|
+
|
18
|
+
it "this example will also not be reported", :foo => 'bar' do
|
19
|
+
# no-op
|
20
|
+
end
|
21
|
+
|
22
|
+
it "this example will also also not be reported" do
|
23
|
+
# no-op
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "this group will not be reported", :report => false do
|
28
|
+
it "though this example will", :report => true do
|
29
|
+
# no-op
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This is an example of how you can use a custom formatter to do custom
|
2
|
+
# reporting. This formatter will only report example groups and examples that
|
3
|
+
# have :report => true (or anything truthy) in the declaration. See
|
4
|
+
# options_example.rb in this directory.
|
5
|
+
|
6
|
+
require 'spec/runner/formatter/base_text_formatter'
|
7
|
+
|
8
|
+
class OptionsFormatter < Spec::Runner::Formatter::BaseTextFormatter
|
9
|
+
def example_started(proxy)
|
10
|
+
if proxy.options[:report]
|
11
|
+
puts proxy.description
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def example_group_started(proxy)
|
16
|
+
if proxy.options[:report]
|
17
|
+
puts proxy.description
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
Feature: expect change
|
2
|
+
|
3
|
+
Expect some code (wrapped in a proc) to change the state of some object.
|
4
|
+
|
5
|
+
Scenario: expecting change
|
6
|
+
Given a file named "expect_change.rb" with:
|
7
|
+
"""
|
8
|
+
class Counter
|
9
|
+
class << self
|
10
|
+
def increment
|
11
|
+
@count ||= 0
|
12
|
+
@count += 1
|
13
|
+
end
|
14
|
+
|
15
|
+
def count
|
16
|
+
@count ||= 0
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe Counter, "#increment" do
|
22
|
+
it "should increment the count" do
|
23
|
+
expect{Counter.increment}.to change{Counter.count}.from(0).to(1)
|
24
|
+
end
|
25
|
+
|
26
|
+
# deliberate failure
|
27
|
+
it "should increment the count by 2" do
|
28
|
+
expect{Counter.increment}.to change{Counter.count}.by(2)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
"""
|
32
|
+
When I run "spec expect_change.rb"
|
33
|
+
Then the stdout should match "2 examples, 1 failure"
|
34
|
+
Then the stdout should match "should have been changed by 2, but was changed by 1"
|
35
|
+
|
36
|
+
Scenario: expecting no change
|
37
|
+
Given a file named "expect_no_change.rb" with:
|
38
|
+
"""
|
39
|
+
class Counter
|
40
|
+
class << self
|
41
|
+
def increment
|
42
|
+
@count ||= 0
|
43
|
+
@count += 1
|
44
|
+
end
|
45
|
+
|
46
|
+
def count
|
47
|
+
@count ||= 0
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe Counter, "#increment" do
|
53
|
+
it "should not increment the count by 2" do
|
54
|
+
expect{Counter.increment}.to_not change{Counter.count}.from(0).to(2)
|
55
|
+
end
|
56
|
+
|
57
|
+
# deliberate failure
|
58
|
+
it "should not increment the count by 1" do
|
59
|
+
expect{Counter.increment}.to_not change{Counter.count}.by(1)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
"""
|
63
|
+
When I run "spec expect_no_change.rb"
|
64
|
+
Then the stdout should match "2 examples, 1 failure"
|
65
|
+
Then the stdout should match "should not have changed, but did change from 1 to 2"
|
@@ -0,0 +1,44 @@
|
|
1
|
+
Feature: expect error
|
2
|
+
|
3
|
+
Expect a proc to change the state of some object.
|
4
|
+
|
5
|
+
Scenario: expect error
|
6
|
+
Given a file named "expect_error.rb" with:
|
7
|
+
"""
|
8
|
+
describe Object, "#non_existent_message" do
|
9
|
+
it "should raise" do
|
10
|
+
expect{Object.non_existent_message}.to raise_error(NameError)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
#deliberate failure
|
15
|
+
describe Object, "#public_instance_methods" do
|
16
|
+
it "should raise" do
|
17
|
+
expect{Object.public_instance_methods}.to raise_error(NameError)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
"""
|
21
|
+
When I run "spec expect_error.rb"
|
22
|
+
Then the stdout should match "2 examples, 1 failure"
|
23
|
+
Then the stdout should match "expected NameError but nothing was raised"
|
24
|
+
|
25
|
+
Scenario: expect no error
|
26
|
+
Given a file named "expect_no_error.rb" with:
|
27
|
+
"""
|
28
|
+
describe Object, "#public_instance_methods" do
|
29
|
+
it "should not raise" do
|
30
|
+
expect{Object.public_instance_methods}.to_not raise_error(NameError)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
#deliberate failure
|
35
|
+
describe Object, "#non_existent_message" do
|
36
|
+
it "should not raise" do
|
37
|
+
expect{Object.non_existent_message}.to_not raise_error(NameError)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
"""
|
41
|
+
When I run "spec expect_no_error.rb"
|
42
|
+
Then the stdout should match "2 examples, 1 failure"
|
43
|
+
Then the stdout should match "undefined method `non_existent_message'"
|
44
|
+
|