rspec 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. data/CHANGES +17 -0
  2. data/Rakefile +7 -4
  3. data/failing_examples/README.txt +7 -0
  4. data/failing_examples/diffing_spec.rb +36 -0
  5. data/failing_examples/failing_autogenerated_docstrings_example.rb +19 -0
  6. data/failing_examples/failure_in_setup.rb +10 -0
  7. data/failing_examples/failure_in_teardown.rb +10 -0
  8. data/failing_examples/mocking_example.rb +40 -0
  9. data/failing_examples/mocking_with_flexmock.rb +26 -0
  10. data/failing_examples/mocking_with_mocha.rb +25 -0
  11. data/failing_examples/mocking_with_rr.rb +27 -0
  12. data/failing_examples/partial_mock_example.rb +20 -0
  13. data/failing_examples/predicate_example.rb +29 -0
  14. data/failing_examples/raising_example.rb +47 -0
  15. data/failing_examples/spec_helper.rb +3 -0
  16. data/failing_examples/syntax_error_example.rb +7 -0
  17. data/failing_examples/team_spec.rb +44 -0
  18. data/failing_examples/timeout_behaviour.rb +7 -0
  19. data/lib/autotest/rspec.rb +21 -35
  20. data/lib/spec.rb +0 -7
  21. data/lib/spec/example/example_group_methods.rb +10 -4
  22. data/lib/spec/example/example_methods.rb +4 -0
  23. data/lib/spec/interop/test.rb +3 -1
  24. data/lib/spec/interop/test/unit/ui/console/testrunner.rb +1 -0
  25. data/lib/spec/matchers/raise_error.rb +19 -15
  26. data/lib/spec/runner.rb +14 -0
  27. data/lib/spec/runner/formatter/story/html_formatter.rb +3 -0
  28. data/lib/spec/runner/formatter/story/plain_text_formatter.rb +4 -1
  29. data/lib/spec/runner/option_parser.rb +5 -33
  30. data/lib/spec/runner/options.rb +51 -18
  31. data/lib/spec/runner/spec_parser.rb +49 -31
  32. data/lib/spec/story/runner.rb +0 -2
  33. data/lib/spec/story/step.rb +8 -6
  34. data/lib/spec/story/world.rb +1 -0
  35. data/lib/spec/version.rb +22 -22
  36. data/pre_commit/lib/pre_commit.rb +4 -0
  37. data/pre_commit/lib/pre_commit/core.rb +50 -0
  38. data/pre_commit/lib/pre_commit/pre_commit.rb +54 -0
  39. data/pre_commit/lib/pre_commit/rspec.rb +111 -0
  40. data/pre_commit/lib/pre_commit/rspec_on_rails.rb +313 -0
  41. data/pre_commit/spec/pre_commit/pre_commit_spec.rb +15 -0
  42. data/pre_commit/spec/pre_commit/rspec_on_rails_spec.rb +36 -0
  43. data/pre_commit/spec/spec_helper.rb +3 -0
  44. data/pre_commit/spec/spec_suite.rb +11 -0
  45. data/rake_tasks/examples.rake +7 -0
  46. data/rake_tasks/examples_with_rcov.rake +9 -0
  47. data/rake_tasks/failing_examples_with_html.rake +9 -0
  48. data/rake_tasks/verify_rcov.rake +7 -0
  49. data/spec/README.jruby +15 -0
  50. data/spec/autotest/rspec_spec.rb +11 -80
  51. data/spec/autotest_helper.rb +2 -1
  52. data/spec/autotest_matchers.rb +47 -0
  53. data/spec/rspec_suite.rb +1 -1
  54. data/spec/spec.opts +6 -0
  55. data/spec/spec/example/example_group_methods_spec.rb +11 -2
  56. data/spec/spec/example/example_methods_spec.rb +69 -56
  57. data/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  58. data/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  59. data/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  60. data/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  61. data/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  62. data/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  63. data/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  64. data/spec/spec/interop/test/unit/spec_spec.rb +45 -0
  65. data/spec/spec/interop/test/unit/testcase_spec.rb +39 -4
  66. data/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +1 -1
  67. data/spec/spec/matchers/raise_error_spec.rb +7 -1
  68. data/spec/spec/mocks/bug_report_10263.rb +1 -1
  69. data/spec/spec/runner/command_line_spec.rb +3 -2
  70. data/spec/spec/runner/empty_file.txt +0 -0
  71. data/spec/spec/runner/examples.txt +2 -0
  72. data/spec/spec/runner/failed.txt +3 -0
  73. data/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
  74. data/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +387 -0
  75. data/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
  76. data/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +381 -0
  77. data/spec/spec/runner/formatter/html_formatted-1.8.6.html +365 -0
  78. data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +54 -54
  79. data/spec/spec/runner/formatter/text_mate_formatted-1.8.4.html +365 -0
  80. data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +365 -0
  81. data/spec/spec/runner/option_parser_spec.rb +50 -49
  82. data/spec/spec/runner/options_spec.rb +72 -2
  83. data/spec/spec/runner/resources/a_bar.rb +0 -0
  84. data/spec/spec/runner/resources/a_foo.rb +0 -0
  85. data/spec/spec/runner/resources/a_spec.rb +1 -0
  86. data/spec/spec/runner/spec.opts +2 -0
  87. data/spec/spec/runner/spec_parser/spec_parser_fixture.rb +70 -0
  88. data/spec/spec/runner/spec_parser_spec.rb +31 -76
  89. data/spec/spec/runner/spec_spaced.opts +2 -0
  90. data/spec/spec/spec_classes.rb +4 -0
  91. data/spec/spec/story/step_spec.rb +22 -0
  92. data/spec/spec/story/world_spec.rb +7 -0
  93. data/stories/interop/test_case_with_should_methods +1 -1
  94. metadata +85 -5
  95. data/spec/spec/interop/test/unit/testcase_spec_with_test_unit.rb +0 -20
  96. data/spec/spec/interop/test/unit/testsuite_adapter_spec_with_test_unit.rb +0 -34
@@ -16,7 +16,7 @@ module Spec
16
16
  @options.stub!(:backtrace_tweaker).and_return(@tweaker)
17
17
  @formatter = PlainTextFormatter.new(@options, @out)
18
18
  end
19
-
19
+
20
20
  it 'should summarize the number of scenarios when the run ends' do
21
21
  # when
22
22
  @formatter.run_started(3)
@@ -27,11 +27,11 @@ module Spec
27
27
  @formatter.scenario_started(nil, nil)
28
28
  @formatter.scenario_succeeded('story', 'scenario3')
29
29
  @formatter.run_ended
30
-
30
+
31
31
  # then
32
32
  @out.string.should include('3 scenarios')
33
33
  end
34
-
34
+
35
35
  it 'should summarize the number of successful scenarios when the run ends' do
36
36
  # when
37
37
  @formatter.run_started(3)
@@ -42,11 +42,11 @@ module Spec
42
42
  @formatter.scenario_started(nil, nil)
43
43
  @formatter.scenario_succeeded('story', 'scenario3')
44
44
  @formatter.run_ended
45
-
45
+
46
46
  # then
47
47
  @out.string.should include('3 scenarios: 3 succeeded')
48
48
  end
49
-
49
+
50
50
  it 'should summarize the number of failed scenarios when the run ends' do
51
51
  # when
52
52
  @formatter.run_started(3)
@@ -57,33 +57,33 @@ module Spec
57
57
  @formatter.scenario_started(nil, nil)
58
58
  @formatter.scenario_failed('story', 'scenario3', exception_from { raise RuntimeError, 'oops' })
59
59
  @formatter.run_ended
60
-
60
+
61
61
  # then
62
62
  @out.string.should include("3 scenarios: 1 succeeded, 2 failed")
63
63
  end
64
-
64
+
65
65
  it 'should end cleanly (no characters on the last line) with successes' do
66
66
  # when
67
67
  @formatter.run_started(1)
68
68
  @formatter.scenario_started(nil, nil)
69
69
  @formatter.scenario_succeeded('story', 'scenario')
70
70
  @formatter.run_ended
71
-
71
+
72
72
  # then
73
73
  @out.string.should =~ /\n\z/
74
74
  end
75
-
75
+
76
76
  it 'should end cleanly (no characters on the last line) with failures' do
77
77
  # when
78
78
  @formatter.run_started(1)
79
79
  @formatter.scenario_started(nil, nil)
80
80
  @formatter.scenario_failed('story', 'scenario', exception_from { raise RuntimeError, 'oops' })
81
81
  @formatter.run_ended
82
-
82
+
83
83
  # then
84
84
  @out.string.should =~ /\n\z/
85
85
  end
86
-
86
+
87
87
  it 'should end cleanly (no characters on the last line) with pending steps' do
88
88
  # when
89
89
  @formatter.run_started(1)
@@ -91,11 +91,11 @@ module Spec
91
91
  @formatter.step_pending(:then, 'do pend')
92
92
  @formatter.scenario_pending('story', 'scenario', exception_from { raise RuntimeError, 'oops' })
93
93
  @formatter.run_ended
94
-
94
+
95
95
  # then
96
96
  @out.string.should =~ /\n\z/
97
97
  end
98
-
98
+
99
99
  it 'should summarize the number of pending scenarios when the run ends' do
100
100
  # when
101
101
  @formatter.run_started(3)
@@ -106,11 +106,11 @@ module Spec
106
106
  @formatter.scenario_started(nil, nil)
107
107
  @formatter.scenario_pending('story', 'scenario3', 'message')
108
108
  @formatter.run_ended
109
-
109
+
110
110
  # then
111
111
  @out.string.should include("3 scenarios: 1 succeeded, 0 failed, 2 pending")
112
112
  end
113
-
113
+
114
114
  it "should only count the first failure in one scenario" do
115
115
  # when
116
116
  @formatter.run_started(3)
@@ -122,11 +122,11 @@ module Spec
122
122
  @formatter.scenario_started(nil, nil)
123
123
  @formatter.scenario_failed('story', 'scenario3', exception_from { raise RuntimeError, 'oops' })
124
124
  @formatter.run_ended
125
-
125
+
126
126
  # then
127
127
  @out.string.should include("3 scenarios: 1 succeeded, 2 failed")
128
128
  end
129
-
129
+
130
130
  it "should only count the first pending in one scenario" do
131
131
  # when
132
132
  @formatter.run_started(3)
@@ -138,11 +138,11 @@ module Spec
138
138
  @formatter.scenario_started(nil, nil)
139
139
  @formatter.scenario_pending('story', 'scenario3', 'because ...')
140
140
  @formatter.run_ended
141
-
141
+
142
142
  # then
143
143
  @out.string.should include("3 scenarios: 1 succeeded, 0 failed, 2 pending")
144
144
  end
145
-
145
+
146
146
  it "should only count a failure before the first pending in one scenario" do
147
147
  # when
148
148
  @formatter.run_started(3)
@@ -154,11 +154,11 @@ module Spec
154
154
  @formatter.scenario_started(nil, nil)
155
155
  @formatter.scenario_failed('story', 'scenario3', exception_from { raise RuntimeError, 'oops' })
156
156
  @formatter.run_ended
157
-
157
+
158
158
  # then
159
159
  @out.string.should include("3 scenarios: 1 succeeded, 1 failed, 1 pending")
160
160
  end
161
-
161
+
162
162
  it 'should produce details of the first failure each failed scenario when the run ends' do
163
163
  # when
164
164
  @formatter.run_started(3)
@@ -170,7 +170,7 @@ module Spec
170
170
  @formatter.scenario_started(nil, nil)
171
171
  @formatter.scenario_failed('story', 'scenario3', exception_from { raise RuntimeError, 'oops3' })
172
172
  @formatter.run_ended
173
-
173
+
174
174
  # then
175
175
  @out.string.should include("FAILURES:\n")
176
176
  @out.string.should include("1) story (scenario2) FAILED")
@@ -179,7 +179,7 @@ module Spec
179
179
  @out.string.should include("2) story (scenario3) FAILED")
180
180
  @out.string.should include("RuntimeError: oops3")
181
181
  end
182
-
182
+
183
183
  it 'should produce details of each pending step when the run ends' do
184
184
  # when
185
185
  @formatter.run_started(2)
@@ -190,139 +190,139 @@ module Spec
190
190
  @formatter.scenario_started('story 2', 'scenario 2')
191
191
  @formatter.step_pending(:given, 'todo 2', [])
192
192
  @formatter.run_ended
193
-
193
+
194
194
  # then
195
195
  @out.string.should include("Pending Steps:\n")
196
196
  @out.string.should include("1) story 1 (scenario 1): todo 1")
197
197
  @out.string.should include("2) story 2 (scenario 2): todo 2")
198
198
  end
199
-
199
+
200
200
  it 'should document a story title and narrative' do
201
201
  # when
202
202
  @formatter.story_started 'story', 'narrative'
203
-
203
+
204
204
  # then
205
205
  @out.string.should include("Story: story\n\n narrative")
206
206
  end
207
-
207
+
208
208
  it 'should document a scenario name' do
209
209
  # when
210
210
  @formatter.scenario_started 'story', 'scenario'
211
-
211
+
212
212
  # then
213
213
  @out.string.should include("\n\n Scenario: scenario")
214
214
  end
215
-
215
+
216
216
  it 'should document a step by sentence-casing its name' do
217
217
  # when
218
218
  @formatter.step_succeeded :given, 'a context'
219
219
  @formatter.step_succeeded :when, 'an event'
220
220
  @formatter.step_succeeded :then, 'an outcome'
221
-
221
+
222
222
  # then
223
223
  @out.string.should include("\n\n Given a context\n\n When an event\n\n Then an outcome")
224
224
  end
225
-
225
+
226
226
  it 'should document additional givens using And' do
227
227
  # when
228
228
  @formatter.step_succeeded :given, 'step 1'
229
229
  @formatter.step_succeeded :given, 'step 2'
230
230
  @formatter.step_succeeded :given, 'step 3'
231
-
231
+
232
232
  # then
233
233
  @out.string.should include(" Given step 1\n And step 2\n And step 3")
234
234
  end
235
-
235
+
236
236
  it 'should document additional events using And' do
237
237
  # when
238
238
  @formatter.step_succeeded :when, 'step 1'
239
239
  @formatter.step_succeeded :when, 'step 2'
240
240
  @formatter.step_succeeded :when, 'step 3'
241
-
241
+
242
242
  # then
243
243
  @out.string.should include(" When step 1\n And step 2\n And step 3")
244
244
  end
245
-
245
+
246
246
  it 'should document additional outcomes using And' do
247
247
  # when
248
248
  @formatter.step_succeeded :then, 'step 1'
249
249
  @formatter.step_succeeded :then, 'step 2'
250
250
  @formatter.step_succeeded :then, 'step 3'
251
-
251
+
252
252
  # then
253
253
  @out.string.should include(" Then step 1\n And step 2\n And step 3")
254
254
  end
255
-
255
+
256
256
  it 'should document a GivenScenario followed by a Given using And' do
257
257
  # when
258
258
  @formatter.step_succeeded :'given scenario', 'a scenario'
259
259
  @formatter.step_succeeded :given, 'a context'
260
-
260
+
261
261
  # then
262
262
  @out.string.should include(" Given scenario a scenario\n And a context")
263
263
  end
264
-
264
+
265
265
  it 'should document steps with replaced params' do
266
266
  @formatter.step_succeeded :given, 'a $coloured dog with $n legs', 'pink', 21
267
267
  @out.string.should include(" Given a pink dog with 21 legs")
268
268
  end
269
-
269
+
270
270
  it 'should document regexp steps with replaced params' do
271
271
  @formatter.step_succeeded :given, /a (pink|blue) dog with (.*) legs/, 'pink', 21
272
272
  @out.string.should include(" Given a pink dog with 21 legs")
273
273
  end
274
-
274
+
275
275
  it "should append PENDING for the first pending step" do
276
276
  @formatter.scenario_started('','')
277
277
  @formatter.step_pending(:given, 'a context')
278
-
278
+
279
279
  @out.string.should include('Given a context (PENDING)')
280
280
  end
281
-
281
+
282
282
  it "should append PENDING for pending after already pending" do
283
283
  @formatter.scenario_started('','')
284
284
  @formatter.step_pending(:given, 'a context')
285
285
  @formatter.step_pending(:when, 'I say hey')
286
-
286
+
287
287
  @out.string.should include('When I say hey (PENDING)')
288
288
  end
289
-
289
+
290
290
  it "should append FAILED for the first failiure" do
291
291
  @formatter.scenario_started('','')
292
292
  @formatter.step_failed(:given, 'a context')
293
-
293
+
294
294
  @out.string.should include('Given a context (FAILED)')
295
295
  end
296
-
296
+
297
297
  it "should append SKIPPED for the second failiure" do
298
298
  @formatter.scenario_started('','')
299
299
  @formatter.step_failed(:given, 'a context')
300
300
  @formatter.step_failed(:when, 'I say hey')
301
-
301
+
302
302
  @out.string.should include('When I say hey (SKIPPED)')
303
303
  end
304
-
304
+
305
305
  it "should append SKIPPED for the a failiure after PENDING" do
306
306
  @formatter.scenario_started('','')
307
307
  @formatter.step_pending(:given, 'a context')
308
308
  @formatter.step_failed(:when, 'I say hey')
309
-
309
+
310
310
  @out.string.should include('When I say hey (SKIPPED)')
311
311
  end
312
-
312
+
313
313
  it 'should print some white space after each story' do
314
314
  # when
315
315
  @formatter.story_ended 'title', 'narrative'
316
-
316
+
317
317
  # then
318
318
  @out.string.should include("\n\n")
319
319
  end
320
-
320
+
321
321
  it "should print nothing for collected_steps" do
322
322
  @formatter.collected_steps(['Given a $coloured $animal', 'Given a $n legged eel'])
323
323
  @out.string.should == ("")
324
324
  end
325
-
325
+
326
326
  it "should ignore messages it doesn't care about" do
327
327
  lambda {
328
328
  @formatter.this_method_does_not_exist
@@ -0,0 +1,365 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
+ <head>
7
+ <title>RSpec results</title>
8
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
+ <meta http-equiv="Expires" content="-1" />
10
+ <meta http-equiv="Pragma" content="no-cache" />
11
+ <style type="text/css">
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ background: #fff;
16
+ font-size: 80%;
17
+ }
18
+ </style>
19
+ </head>
20
+ <body>
21
+ <div class="rspec-report">
22
+ <script type="text/javascript">
23
+ // <![CDATA[
24
+ function moveProgressBar(percentDone) {
25
+ document.getElementById("rspec-header").style.width = percentDone +"%";
26
+ }
27
+ function makeRed(element_id) {
28
+ document.getElementById(element_id).style.background = '#C40D0D';
29
+ document.getElementById(element_id).style.color = '#FFFFFF';
30
+ }
31
+
32
+ function makeYellow(element_id) {
33
+ if (element_id == "rspec-header" && document.getElementById(element_id).style.background != '#C40D0D')
34
+ {
35
+ document.getElementById(element_id).style.background = '#FAF834';
36
+ document.getElementById(element_id).style.color = '#000000';
37
+ }
38
+ else
39
+ {
40
+ document.getElementById(element_id).style.background = '#FAF834';
41
+ document.getElementById(element_id).style.color = '#000000';
42
+ }
43
+ }
44
+
45
+ // ]]>
46
+ </script>
47
+ <style type="text/css">
48
+ #rspec-header {
49
+ background: #65C400; color: #fff;
50
+ }
51
+
52
+ .rspec-report h1 {
53
+ margin: 0px 10px 0px 10px;
54
+ padding: 10px;
55
+ font-family: "Lucida Grande", Helvetica, sans-serif;
56
+ font-size: 1.8em;
57
+ }
58
+
59
+ #summary {
60
+ margin: 0; padding: 5px 10px;
61
+ font-family: "Lucida Grande", Helvetica, sans-serif;
62
+ text-align: right;
63
+ position: absolute;
64
+ top: 0px;
65
+ right: 0px;
66
+ }
67
+
68
+ #summary p {
69
+ margin: 0 0 0 2px;
70
+ }
71
+
72
+ #summary #totals {
73
+ font-size: 1.2em;
74
+ }
75
+
76
+ .example_group {
77
+ margin: 0 10px 5px;
78
+ background: #fff;
79
+ }
80
+
81
+ dl {
82
+ margin: 0; padding: 0 0 5px;
83
+ font: normal 11px "Lucida Grande", Helvetica, sans-serif;
84
+ }
85
+
86
+ dt {
87
+ padding: 3px;
88
+ background: #65C400;
89
+ color: #fff;
90
+ font-weight: bold;
91
+ }
92
+
93
+ dd {
94
+ margin: 5px 0 5px 5px;
95
+ padding: 3px 3px 3px 18px;
96
+ }
97
+
98
+ dd.spec.passed {
99
+ border-left: 5px solid #65C400;
100
+ border-bottom: 1px solid #65C400;
101
+ background: #DBFFB4; color: #3D7700;
102
+ }
103
+
104
+ dd.spec.failed {
105
+ border-left: 5px solid #C20000;
106
+ border-bottom: 1px solid #C20000;
107
+ color: #C20000; background: #FFFBD3;
108
+ }
109
+
110
+ dd.spec.not_implemented {
111
+ border-left: 5px solid #FAF834;
112
+ border-bottom: 1px solid #FAF834;
113
+ background: #FCFB98; color: #131313;
114
+ }
115
+
116
+ dd.spec.pending_fixed {
117
+ border-left: 5px solid #0000C2;
118
+ border-bottom: 1px solid #0000C2;
119
+ color: #0000C2; background: #D3FBFF;
120
+ }
121
+
122
+ .backtrace {
123
+ color: #000;
124
+ font-size: 12px;
125
+ }
126
+
127
+ a {
128
+ color: #BE5C00;
129
+ }
130
+
131
+ /* Ruby code, style similar to vibrant ink */
132
+ .ruby {
133
+ font-size: 12px;
134
+ font-family: monospace;
135
+ color: white;
136
+ background-color: black;
137
+ padding: 0.1em 0 0.2em 0;
138
+ }
139
+
140
+ .ruby .keyword { color: #FF6600; }
141
+ .ruby .constant { color: #339999; }
142
+ .ruby .attribute { color: white; }
143
+ .ruby .global { color: white; }
144
+ .ruby .module { color: white; }
145
+ .ruby .class { color: white; }
146
+ .ruby .string { color: #66FF00; }
147
+ .ruby .ident { color: white; }
148
+ .ruby .method { color: #FFCC00; }
149
+ .ruby .number { color: white; }
150
+ .ruby .char { color: white; }
151
+ .ruby .comment { color: #9933CC; }
152
+ .ruby .symbol { color: white; }
153
+ .ruby .regex { color: #44B4CC; }
154
+ .ruby .punct { color: white; }
155
+ .ruby .escape { color: white; }
156
+ .ruby .interp { color: white; }
157
+ .ruby .expr { color: white; }
158
+
159
+ .ruby .offending { background-color: gray; }
160
+ .ruby .linenum {
161
+ width: 75px;
162
+ padding: 0.1em 1em 0.2em 0;
163
+ color: #000000;
164
+ background-color: #FFFBD3;
165
+ }
166
+
167
+ </style>
168
+
169
+ <div id="rspec-header">
170
+ <h1>RSpec Results</h1>
171
+
172
+ <div id="summary">
173
+ <p id="totals">&nbsp;</p>
174
+ <p id="duration">&nbsp;</p>
175
+ </div>
176
+ </div>
177
+
178
+ <div class="results">
179
+ <div class="example_group">
180
+ <dl>
181
+ <dt id="example_group_1">Mocker</dt>
182
+ <script type="text/javascript">moveProgressBar('5.8');</script>
183
+ <dd class="spec passed"><span class="passed_spec_name">should be able to call mock()</span></dd>
184
+ <script type="text/javascript">makeRed('rspec-header');</script>
185
+ <script type="text/javascript">makeRed('example_group_1');</script>
186
+ <script type="text/javascript">moveProgressBar('11.7');</script>
187
+ <dd class="spec failed">
188
+ <span class="failed_spec_name">should fail when expected message not received</span>
189
+ <div class="failure" id="failure_1">
190
+ <div class="message"><pre>Mock 'poke me' expected :poke with (any args) once, but received it 0 times</pre></div>
191
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/failing_examples/mocking_example.rb&line=13">./failing_examples/mocking_example.rb:13</a>
192
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=52">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:52</a>
193
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=48">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:48</a> </pre></div>
194
+ <pre class="ruby"><code><span class="linenum">11</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should fail when expected message not received</span><span class="punct">&quot;</span> <span class="keyword">do</span>
195
+ <span class="linenum">12</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">poke me</span><span class="punct">&quot;)</span>
196
+ <span class="offending"><span class="linenum">13</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:poke</span><span class="punct">)</span></span>
197
+ <span class="linenum">14</span> <span class="keyword">end</span>
198
+ <span class="linenum">15</span> </code></pre>
199
+ </div>
200
+ </dd>
201
+ <script type="text/javascript">moveProgressBar('17.6');</script>
202
+ <dd class="spec failed">
203
+ <span class="failed_spec_name">should fail when messages are received out of order</span>
204
+ <div class="failure" id="failure_2">
205
+ <div class="message"><pre>Mock 'one two three' received :three out of order</pre></div>
206
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/failing_examples/mocking_example.rb&line=22">./failing_examples/mocking_example.rb:22</a>
207
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=52">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:52</a>
208
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=48">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:48</a> </pre></div>
209
+ <pre class="ruby"><code><span class="linenum">20</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_receive</span><span class="punct">(</span><span class="symbol">:three</span><span class="punct">).</span><span class="ident">ordered</span>
210
+ <span class="linenum">21</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">one</span>
211
+ <span class="offending"><span class="linenum">22</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">three</span></span>
212
+ <span class="linenum">23</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">two</span>
213
+ <span class="linenum">24</span> <span class="keyword">end</span></code></pre>
214
+ </div>
215
+ </dd>
216
+ <script type="text/javascript">moveProgressBar('23.5');</script>
217
+ <dd class="spec failed">
218
+ <span class="failed_spec_name">should get yelled at when sending unexpected messages</span>
219
+ <div class="failure" id="failure_3">
220
+ <div class="message"><pre>Mock 'don't talk to me' expected :any_message_at_all with (any args) 0 times, but received it once</pre></div>
221
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/failing_examples/mocking_example.rb&line=28">./failing_examples/mocking_example.rb:28</a>
222
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=52">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:52</a>
223
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=48">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:48</a> </pre></div>
224
+ <pre class="ruby"><code><span class="linenum">26</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">should get yelled at when sending unexpected messages</span><span class="punct">&quot;</span> <span class="keyword">do</span>
225
+ <span class="linenum">27</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">don't talk to me</span><span class="punct">&quot;)</span>
226
+ <span class="offending"><span class="linenum">28</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">should_not_receive</span><span class="punct">(</span><span class="symbol">:any_message_at_all</span><span class="punct">)</span></span>
227
+ <span class="linenum">29</span> <span class="ident">mock</span><span class="punct">.</span><span class="ident">any_message_at_all</span>
228
+ <span class="linenum">30</span> <span class="keyword">end</span></code></pre>
229
+ </div>
230
+ </dd>
231
+ <script type="text/javascript">moveProgressBar('29.4');</script>
232
+ <dd class="spec pending_fixed">
233
+ <span class="failed_spec_name">has a bug we need to fix</span>
234
+ <div class="failure" id="failure_4">
235
+ <div class="message"><pre>Expected pending 'here is the bug' to fail. No Error was raised.</pre></div>
236
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/failing_examples/mocking_example.rb&line=33">./failing_examples/mocking_example.rb:33</a>
237
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=52">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:52</a>
238
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=48">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:48</a> </pre></div>
239
+ <pre class="ruby"><code><span class="linenum">31</span>
240
+ <span class="linenum">32</span> <span class="ident">it</span> <span class="punct">&quot;</span><span class="string">has a bug we need to fix</span><span class="punct">&quot;</span> <span class="keyword">do</span>
241
+ <span class="offending"><span class="linenum">33</span> <span class="ident">pending</span> <span class="punct">&quot;</span><span class="string">here is the bug</span><span class="punct">&quot;</span> <span class="keyword">do</span></span>
242
+ <span class="linenum">34</span> <span class="comment"># Actually, no. It's fixed. This will fail because it passes :-)</span>
243
+ <span class="linenum">35</span> <span class="ident">mock</span> <span class="punct">=</span> <span class="ident">mock</span><span class="punct">(&quot;</span><span class="string">Bug</span><span class="punct">&quot;)</span></code></pre>
244
+ </div>
245
+ </dd>
246
+ </dl>
247
+ </div>
248
+ <div class="example_group">
249
+ <dl>
250
+ <dt id="example_group_2">Running specs with --diff</dt>
251
+ <script type="text/javascript">makeRed('example_group_2');</script>
252
+ <script type="text/javascript">moveProgressBar('35.2');</script>
253
+ <dd class="spec failed">
254
+ <span class="failed_spec_name">should print diff of different strings</span>
255
+ <div class="failure" id="failure_5">
256
+ <div class="message"><pre>expected: &quot;RSpec is a\nbehaviour driven development\nframework for Ruby\n&quot;,
257
+ got: &quot;RSpec is a\nbehavior driven development\nframework for Ruby\n&quot; (using ==)
258
+ Diff:
259
+ @@ -1,4 +1,4 @@
260
+ RSpec is a
261
+ -behavior driven development
262
+ +behaviour driven development
263
+ framework for Ruby
264
+ </pre></div>
265
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/failing_examples/diffing_spec.rb&line=13">./failing_examples/diffing_spec.rb:13</a>
266
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=52">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:52</a>
267
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=48">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:48</a> </pre></div>
268
+ <pre class="ruby"><code><span class="linenum">11</span><span class="ident">framework</span> <span class="keyword">for</span> <span class="constant">Ruby</span>
269
+ <span class="linenum">12</span><span class="constant">EOF</span>
270
+ <span class="offending"><span class="linenum">13</span> <span class="ident">usa</span><span class="punct">.</span><span class="ident">should</span> <span class="punct">==</span> <span class="ident">uk</span></span>
271
+ <span class="linenum">14</span> <span class="keyword">end</span></code></pre>
272
+ </div>
273
+ </dd>
274
+ <script type="text/javascript">moveProgressBar('41.1');</script>
275
+ <dd class="spec failed">
276
+ <span class="failed_spec_name">should print diff of different objects' pretty representation</span>
277
+ <div class="failure" id="failure_6">
278
+ <div class="message"><pre>expected &lt;Animal
279
+ name=bob,
280
+ species=tortoise
281
+ &gt;
282
+ , got &lt;Animal
283
+ name=bob,
284
+ species=giraffe
285
+ &gt;
286
+ (using .eql?)
287
+ Diff:
288
+ @@ -1,5 +1,5 @@
289
+ &lt;Animal
290
+ name=bob,
291
+ -species=giraffe
292
+ +species=tortoise
293
+ &gt;
294
+ </pre></div>
295
+ <div class="backtrace"><pre><a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/failing_examples/diffing_spec.rb&line=34">./failing_examples/diffing_spec.rb:34</a>
296
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=52">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:52</a>
297
+ <a href="txmt://open?url=file:///Users/aslakhellesoy/scm/rspec/trunk/rspec/spec/spec/runner/formatter/spec_mate_formatter_spec.rb&line=48">./spec/spec/runner/formatter/spec_mate_formatter_spec.rb:48</a> </pre></div>
298
+ <pre class="ruby"><code><span class="linenum">32</span> <span class="ident">expected</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">giraffe</span><span class="punct">&quot;</span>
299
+ <span class="linenum">33</span> <span class="ident">actual</span> <span class="punct">=</span> <span class="constant">Animal</span><span class="punct">.</span><span class="ident">new</span> <span class="punct">&quot;</span><span class="string">bob</span><span class="punct">&quot;,</span> <span class="punct">&quot;</span><span class="string">tortoise</span><span class="punct">&quot;</span>
300
+ <span class="offending"><span class="linenum">34</span> <span class="ident">expected</span><span class="punct">.</span><span class="ident">should</span> <span class="ident">eql</span><span class="punct">(</span><span class="ident">actual</span><span class="punct">)</span></span>
301
+ <span class="linenum">35</span> <span class="keyword">end</span>
302
+ <span class="linenum">36</span><span class="keyword">end</span></code></pre>
303
+ </div>
304
+ </dd>
305
+ </dl>
306
+ </div>
307
+ <div class="example_group">
308
+ <dl>
309
+ <dt id="example_group_3">A consumer of a stub</dt>
310
+ <script type="text/javascript">moveProgressBar('47.0');</script>
311
+ <dd class="spec passed"><span class="passed_spec_name">should be able to stub methods on any Object</span></dd>
312
+ </dl>
313
+ </div>
314
+ <div class="example_group">
315
+ <dl>
316
+ <dt id="example_group_4">A stubbed method on a class</dt>
317
+ <script type="text/javascript">moveProgressBar('52.9');</script>
318
+ <dd class="spec passed"><span class="passed_spec_name">should return the stubbed value</span></dd>
319
+ <script type="text/javascript">moveProgressBar('58.8');</script>
320
+ <dd class="spec passed"><span class="passed_spec_name">should revert to the original method after each spec</span></dd>
321
+ <script type="text/javascript">moveProgressBar('64.7');</script>
322
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
323
+ </dl>
324
+ </div>
325
+ <div class="example_group">
326
+ <dl>
327
+ <dt id="example_group_5">A mock</dt>
328
+ <script type="text/javascript">moveProgressBar('70.5');</script>
329
+ <dd class="spec passed"><span class="passed_spec_name">can stub!</span></dd>
330
+ <script type="text/javascript">moveProgressBar('76.4');</script>
331
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock</span></dd>
332
+ <script type="text/javascript">moveProgressBar('82.3');</script>
333
+ <dd class="spec passed"><span class="passed_spec_name">can stub! and mock the same message</span></dd>
334
+ </dl>
335
+ </div>
336
+ <div class="example_group">
337
+ <dl>
338
+ <dt id="example_group_6">pending example (using pending method)</dt>
339
+ <script type="text/javascript">makeYellow('example_group_6');</script>
340
+ <script type="text/javascript">moveProgressBar('88.2');</script>
341
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
342
+ </dl>
343
+ </div>
344
+ <div class="example_group">
345
+ <dl>
346
+ <dt id="example_group_7">pending example (with no block)</dt>
347
+ <script type="text/javascript">makeYellow('example_group_7');</script>
348
+ <script type="text/javascript">moveProgressBar('94.1');</script>
349
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should be reported as &quot;PENDING: Not Yet Implemented&quot; (PENDING: Not Yet Implemented)</span></dd>
350
+ </dl>
351
+ </div>
352
+ <div class="example_group">
353
+ <dl>
354
+ <dt id="example_group_8">pending example (with block for pending)</dt>
355
+ <script type="text/javascript">makeYellow('example_group_8');</script>
356
+ <script type="text/javascript">moveProgressBar('100.0');</script>
357
+ <dd class="spec not_implemented"><span class="not_implemented_spec_name">should have a failing block, passed to pending, reported as &quot;PENDING: for some reason&quot; (PENDING: for some reason)</span></dd>
358
+ </dl>
359
+ </div>
360
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>x seconds</strong>";</script>
361
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "17 examples, 6 failures, 3 pending";</script>
362
+ </div>
363
+ </div>
364
+ </body>
365
+ </html>