dchelimsky-rspec 1.1.11.7 → 1.1.12
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/History.txt +1 -1
- data/features/support/helpers/story_helper.rb +0 -3
- data/lib/spec/example/example_group_methods.rb +1 -1
- data/lib/spec/matchers.rb +1 -1
- data/lib/spec/mocks.rb +3 -3
- data/lib/spec/mocks/argument_expectation.rb +14 -14
- data/lib/spec/mocks/framework.rb +1 -1
- data/lib/spec/mocks/message_expectation.rb +1 -1
- data/lib/spec/mocks/mock.rb +3 -4
- data/lib/spec/mocks/spec_methods.rb +10 -1
- data/lib/spec/version.rb +2 -2
- data/rspec.gemspec +3 -3
- data/spec/spec/mocks/hash_including_matcher_spec.rb +4 -4
- data/spec/spec/mocks/hash_not_including_matcher_spec.rb +3 -3
- data/spec/spec/mocks/mock_spec.rb +25 -0
- data/spec/spec/runner/reporter_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -1
- metadata +3 -3
- data/lib/spec/mocks/argument_constraints.rb +0 -237
- data/lib/spec/runner/formatter/story/html_formatter.rb +0 -174
- data/lib/spec/runner/formatter/story/plain_text_formatter.rb +0 -194
- data/lib/spec/runner/formatter/story/progress_bar_formatter.rb +0 -42
- data/lib/spec/story.rb +0 -10
- data/lib/spec/story/extensions.rb +0 -3
- data/lib/spec/story/extensions/main.rb +0 -86
- data/lib/spec/story/extensions/regexp.rb +0 -9
- data/lib/spec/story/extensions/string.rb +0 -9
- data/lib/spec/story/given_scenario.rb +0 -14
- data/lib/spec/story/runner.rb +0 -57
- data/lib/spec/story/runner/plain_text_story_runner.rb +0 -48
- data/lib/spec/story/runner/scenario_collector.rb +0 -18
- data/lib/spec/story/runner/scenario_runner.rb +0 -54
- data/lib/spec/story/runner/story_mediator.rb +0 -137
- data/lib/spec/story/runner/story_parser.rb +0 -247
- data/lib/spec/story/runner/story_runner.rb +0 -74
- data/lib/spec/story/scenario.rb +0 -14
- data/lib/spec/story/step.rb +0 -70
- data/lib/spec/story/step_group.rb +0 -89
- data/lib/spec/story/step_mother.rb +0 -38
- data/lib/spec/story/story.rb +0 -39
- data/lib/spec/story/world.rb +0 -124
- data/spec/spec/matchers/mock_constraint_matchers_spec.rb +0 -24
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +0 -95
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +0 -145
- data/spec/spec/runner/formatter/story/html_formatter_spec.rb +0 -135
- data/spec/spec/runner/formatter/story/plain_text_formatter_spec.rb +0 -600
- data/spec/spec/runner/formatter/story/progress_bar_formatter_spec.rb +0 -82
- data/spec/spec/story/builders.rb +0 -46
- data/spec/spec/story/extensions/main_spec.rb +0 -161
- data/spec/spec/story/extensions_spec.rb +0 -14
- data/spec/spec/story/given_scenario_spec.rb +0 -27
- data/spec/spec/story/runner/plain_text_story_runner_spec.rb +0 -90
- data/spec/spec/story/runner/scenario_collector_spec.rb +0 -27
- data/spec/spec/story/runner/scenario_runner_spec.rb +0 -214
- data/spec/spec/story/runner/story_mediator_spec.rb +0 -143
- data/spec/spec/story/runner/story_parser_spec.rb +0 -401
- data/spec/spec/story/runner/story_runner_spec.rb +0 -294
- data/spec/spec/story/runner_spec.rb +0 -93
- data/spec/spec/story/scenario_spec.rb +0 -18
- data/spec/spec/story/step_group_spec.rb +0 -157
- data/spec/spec/story/step_mother_spec.rb +0 -84
- data/spec/spec/story/step_spec.rb +0 -272
- data/spec/spec/story/story_helper.rb +0 -2
- data/spec/spec/story/story_spec.rb +0 -84
- data/spec/spec/story/world_spec.rb +0 -423
- data/story_server/prototype/javascripts/builder.js +0 -136
- data/story_server/prototype/javascripts/controls.js +0 -972
- data/story_server/prototype/javascripts/dragdrop.js +0 -976
- data/story_server/prototype/javascripts/effects.js +0 -1117
- data/story_server/prototype/javascripts/prototype.js +0 -4140
- data/story_server/prototype/javascripts/rspec.js +0 -149
- data/story_server/prototype/javascripts/scriptaculous.js +0 -58
- data/story_server/prototype/javascripts/slider.js +0 -276
- data/story_server/prototype/javascripts/sound.js +0 -55
- data/story_server/prototype/javascripts/unittest.js +0 -568
- data/story_server/prototype/lib/server.rb +0 -24
- data/story_server/prototype/stories.html +0 -176
- data/story_server/prototype/stylesheets/rspec.css +0 -136
- data/story_server/prototype/stylesheets/test.css +0 -90
@@ -1,294 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../story_helper'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module Story
|
5
|
-
module Runner
|
6
|
-
describe StoryRunner do
|
7
|
-
it 'should collect all the stories' do
|
8
|
-
# given
|
9
|
-
story_runner = StoryRunner.new(stub('scenario_runner'))
|
10
|
-
|
11
|
-
# when
|
12
|
-
story_runner.Story 'title1', 'narrative1' do end
|
13
|
-
story_runner.Story 'title2', 'narrative2' do end
|
14
|
-
stories = story_runner.stories
|
15
|
-
|
16
|
-
# then
|
17
|
-
story_runner.should have(2).stories
|
18
|
-
stories.first.title.should == 'title1'
|
19
|
-
stories.first.narrative.should == 'narrative1'
|
20
|
-
stories.last.title.should == 'title2'
|
21
|
-
stories.last.narrative.should == 'narrative2'
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'should gather all the scenarios in the stories' do
|
25
|
-
# given
|
26
|
-
story_runner = StoryRunner.new(stub('scenario_runner'))
|
27
|
-
|
28
|
-
# when
|
29
|
-
story_runner.Story "story1", "narrative1" do
|
30
|
-
Scenario "scenario1" do end
|
31
|
-
Scenario "scenario2" do end
|
32
|
-
end
|
33
|
-
story_runner.Story "story2", "narrative2" do
|
34
|
-
Scenario "scenario3" do end
|
35
|
-
end
|
36
|
-
scenarios = story_runner.scenarios
|
37
|
-
|
38
|
-
# then
|
39
|
-
story_runner.should have(3).scenarios
|
40
|
-
scenarios[0].name.should == 'scenario1'
|
41
|
-
scenarios[1].name.should == 'scenario2'
|
42
|
-
scenarios[2].name.should == 'scenario3'
|
43
|
-
end
|
44
|
-
|
45
|
-
# captures worlds passed into a ScenarioRunner
|
46
|
-
class ScenarioWorldCatcher
|
47
|
-
attr_accessor :worlds
|
48
|
-
def run(scenario, world)
|
49
|
-
(@worlds ||= []) << world
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
it 'should run each scenario in a separate object' do
|
54
|
-
# given
|
55
|
-
scenario_world_catcher = ScenarioWorldCatcher.new
|
56
|
-
story_runner = StoryRunner.new(scenario_world_catcher)
|
57
|
-
story_runner.Story 'story', 'narrative' do
|
58
|
-
Scenario 'scenario1' do end
|
59
|
-
Scenario 'scenario2' do end
|
60
|
-
end
|
61
|
-
|
62
|
-
# when
|
63
|
-
story_runner.run_stories
|
64
|
-
|
65
|
-
# then
|
66
|
-
worlds = scenario_world_catcher.worlds
|
67
|
-
scenario_world_catcher.should have(2).worlds
|
68
|
-
worlds[0].should_not == worlds[1]
|
69
|
-
end
|
70
|
-
|
71
|
-
it "should return false if the scenario runner returns false ever" do
|
72
|
-
#given
|
73
|
-
stub_scenario_runner = stub_everything
|
74
|
-
story_runner = StoryRunner.new(stub_scenario_runner)
|
75
|
-
story_runner.Story 'story', 'narrative' do
|
76
|
-
Scenario 'scenario1' do end
|
77
|
-
Scenario 'scenario2' do end
|
78
|
-
end
|
79
|
-
|
80
|
-
# expect
|
81
|
-
stub_scenario_runner.should_receive(:run).once.and_return(false,true)
|
82
|
-
|
83
|
-
# when
|
84
|
-
success = story_runner.run_stories
|
85
|
-
|
86
|
-
#then
|
87
|
-
success.should == false
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should return true if the scenario runner returns true for all scenarios" do
|
91
|
-
#given
|
92
|
-
stub_scenario_runner = stub_everything
|
93
|
-
story_runner = StoryRunner.new(stub_scenario_runner)
|
94
|
-
story_runner.Story 'story', 'narrative' do
|
95
|
-
Scenario 'scenario1' do end
|
96
|
-
Scenario 'scenario2' do end
|
97
|
-
end
|
98
|
-
|
99
|
-
# expect
|
100
|
-
stub_scenario_runner.should_receive(:run).once.and_return(true,true)
|
101
|
-
|
102
|
-
# when
|
103
|
-
success = story_runner.run_stories
|
104
|
-
|
105
|
-
#then
|
106
|
-
success.should == true
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'should use the provided world creator to create worlds' do
|
110
|
-
# given
|
111
|
-
stub_scenario_runner = stub_everything
|
112
|
-
mock_world_creator = mock('world creator')
|
113
|
-
story_runner = StoryRunner.new(stub_scenario_runner, mock_world_creator)
|
114
|
-
story_runner.Story 'story', 'narrative' do
|
115
|
-
Scenario 'scenario1' do end
|
116
|
-
Scenario 'scenario2' do end
|
117
|
-
end
|
118
|
-
|
119
|
-
# expect
|
120
|
-
mock_world_creator.should_receive(:create).twice
|
121
|
-
|
122
|
-
# when
|
123
|
-
story_runner.run_stories
|
124
|
-
|
125
|
-
# then
|
126
|
-
end
|
127
|
-
|
128
|
-
it 'should notify listeners of the scenario count when the run starts' do
|
129
|
-
# given
|
130
|
-
story_runner = StoryRunner.new(stub_everything)
|
131
|
-
mock_listener1 = stub_everything('listener1')
|
132
|
-
mock_listener2 = stub_everything('listener2')
|
133
|
-
story_runner.add_listener(mock_listener1)
|
134
|
-
story_runner.add_listener(mock_listener2)
|
135
|
-
|
136
|
-
story_runner.Story 'story1', 'narrative1' do
|
137
|
-
Scenario 'scenario1' do end
|
138
|
-
end
|
139
|
-
story_runner.Story 'story2', 'narrative2' do
|
140
|
-
Scenario 'scenario2' do end
|
141
|
-
Scenario 'scenario3' do end
|
142
|
-
end
|
143
|
-
|
144
|
-
# expect
|
145
|
-
mock_listener1.should_receive(:run_started).with(3)
|
146
|
-
mock_listener2.should_receive(:run_started).with(3)
|
147
|
-
|
148
|
-
# when
|
149
|
-
story_runner.run_stories
|
150
|
-
|
151
|
-
# then
|
152
|
-
end
|
153
|
-
|
154
|
-
it 'should notify listeners when a story starts' do
|
155
|
-
# given
|
156
|
-
story_runner = StoryRunner.new(stub_everything)
|
157
|
-
mock_listener1 = stub_everything('listener1')
|
158
|
-
mock_listener2 = stub_everything('listener2')
|
159
|
-
story_runner.add_listener(mock_listener1)
|
160
|
-
story_runner.add_listener(mock_listener2)
|
161
|
-
|
162
|
-
story_runner.Story 'story1', 'narrative1' do
|
163
|
-
Scenario 'scenario1' do end
|
164
|
-
end
|
165
|
-
story_runner.Story 'story2', 'narrative2' do
|
166
|
-
Scenario 'scenario2' do end
|
167
|
-
Scenario 'scenario3' do end
|
168
|
-
end
|
169
|
-
|
170
|
-
# expect
|
171
|
-
mock_listener1.should_receive(:story_started).with('story1', 'narrative1')
|
172
|
-
mock_listener1.should_receive(:story_ended).with('story1', 'narrative1')
|
173
|
-
mock_listener2.should_receive(:story_started).with('story2', 'narrative2')
|
174
|
-
mock_listener2.should_receive(:story_ended).with('story2', 'narrative2')
|
175
|
-
|
176
|
-
# when
|
177
|
-
story_runner.run_stories
|
178
|
-
|
179
|
-
# then
|
180
|
-
end
|
181
|
-
|
182
|
-
it 'should notify listeners when the run ends' do
|
183
|
-
# given
|
184
|
-
story_runner = StoryRunner.new(stub_everything)
|
185
|
-
mock_listener1 = stub_everything('listener1')
|
186
|
-
mock_listener2 = stub_everything('listener2')
|
187
|
-
story_runner.add_listener mock_listener1
|
188
|
-
story_runner.add_listener mock_listener2
|
189
|
-
story_runner.Story 'story1', 'narrative1' do
|
190
|
-
Scenario 'scenario1' do end
|
191
|
-
end
|
192
|
-
|
193
|
-
# expect
|
194
|
-
mock_listener1.should_receive(:run_ended)
|
195
|
-
mock_listener2.should_receive(:run_ended)
|
196
|
-
|
197
|
-
# when
|
198
|
-
story_runner.run_stories
|
199
|
-
|
200
|
-
# then
|
201
|
-
end
|
202
|
-
|
203
|
-
it 'should run a story in an instance of a specified class' do
|
204
|
-
# given
|
205
|
-
scenario_world_catcher = ScenarioWorldCatcher.new
|
206
|
-
story_runner = StoryRunner.new(scenario_world_catcher)
|
207
|
-
story_runner.Story 'title', 'narrative', :type => String do
|
208
|
-
Scenario 'scenario' do end
|
209
|
-
end
|
210
|
-
|
211
|
-
# when
|
212
|
-
story_runner.run_stories
|
213
|
-
|
214
|
-
# then
|
215
|
-
scenario_world_catcher.worlds[0].should be_kind_of(String)
|
216
|
-
scenario_world_catcher.worlds[0].should be_kind_of(World)
|
217
|
-
end
|
218
|
-
|
219
|
-
it 'should pass initialization params through to the constructed instance' do
|
220
|
-
# given
|
221
|
-
scenario_world_catcher = ScenarioWorldCatcher.new
|
222
|
-
story_runner = StoryRunner.new(scenario_world_catcher)
|
223
|
-
story_runner.Story 'title', 'narrative', :type => Array, :args => [3] do
|
224
|
-
Scenario 'scenario' do end
|
225
|
-
end
|
226
|
-
|
227
|
-
# when
|
228
|
-
story_runner.run_stories
|
229
|
-
|
230
|
-
# then
|
231
|
-
scenario_world_catcher.worlds[0].should be_kind_of(Array)
|
232
|
-
scenario_world_catcher.worlds[0].size.should == 3
|
233
|
-
end
|
234
|
-
|
235
|
-
it 'should find a scenario in the current story by name' do
|
236
|
-
# given
|
237
|
-
story_runner = StoryRunner.new(ScenarioRunner.new)
|
238
|
-
scenario = nil
|
239
|
-
|
240
|
-
story_runner.Story 'title', 'narrative' do
|
241
|
-
Scenario 'first scenario' do
|
242
|
-
end
|
243
|
-
Scenario 'second scenario' do
|
244
|
-
scenario = StoryRunner.scenario_from_current_story 'first scenario'
|
245
|
-
end
|
246
|
-
end
|
247
|
-
|
248
|
-
# when
|
249
|
-
story_runner.run_stories
|
250
|
-
|
251
|
-
# then
|
252
|
-
scenario.name.should == 'first scenario'
|
253
|
-
end
|
254
|
-
|
255
|
-
it "should clean the steps between stories" do
|
256
|
-
#given
|
257
|
-
story_runner = StoryRunner.new(ScenarioRunner.new)
|
258
|
-
result = mock 'result'
|
259
|
-
|
260
|
-
step1 = Step.new('step') do
|
261
|
-
result.one
|
262
|
-
end
|
263
|
-
steps1 = StepGroup.new
|
264
|
-
steps1.add :when, step1
|
265
|
-
|
266
|
-
story_runner.Story 'title', 'narrative', :steps_for => steps1 do
|
267
|
-
Scenario 'first scenario' do
|
268
|
-
When 'step'
|
269
|
-
end
|
270
|
-
end
|
271
|
-
|
272
|
-
step2 = Step.new('step') do
|
273
|
-
result.two
|
274
|
-
end
|
275
|
-
steps2 = StepGroup.new
|
276
|
-
steps2.add :when, step2
|
277
|
-
|
278
|
-
story_runner.Story 'title2', 'narrative', :steps_for => steps2 do
|
279
|
-
Scenario 'second scenario' do
|
280
|
-
When 'step'
|
281
|
-
end
|
282
|
-
end
|
283
|
-
|
284
|
-
#then
|
285
|
-
result.should_receive(:one)
|
286
|
-
result.should_receive(:two)
|
287
|
-
|
288
|
-
#when
|
289
|
-
story_runner.run_stories
|
290
|
-
end
|
291
|
-
end
|
292
|
-
end
|
293
|
-
end
|
294
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/story_helper'
|
2
|
-
require 'spec/runner/formatter/story/plain_text_formatter'
|
3
|
-
require 'spec/runner/formatter/story/html_formatter'
|
4
|
-
|
5
|
-
module Spec
|
6
|
-
module Story
|
7
|
-
describe Runner, "module" do
|
8
|
-
before(:each) do
|
9
|
-
@world_creator = World.dup
|
10
|
-
@runner_module = Runner.dup
|
11
|
-
@runner_module.instance_eval {@story_runner = nil}
|
12
|
-
@runner_module.stub!(:register_exit_hook)
|
13
|
-
end
|
14
|
-
|
15
|
-
def create_options(args=[])
|
16
|
-
Spec::Runner::OptionParser.parse(args, StringIO.new, StringIO.new)
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'should wire up a singleton StoryRunner' do
|
20
|
-
@runner_module.story_runner.should_not be_nil
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'should set its options based on ARGV' do
|
24
|
-
# given
|
25
|
-
@runner_module.should_receive(:run_options).and_return(
|
26
|
-
create_options(['--dry-run'])
|
27
|
-
)
|
28
|
-
|
29
|
-
# when
|
30
|
-
options = @runner_module.run_options
|
31
|
-
|
32
|
-
# then
|
33
|
-
options.dry_run.should be_true
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "initialization" do
|
37
|
-
|
38
|
-
before(:each) do
|
39
|
-
# given
|
40
|
-
@story_runner = mock('story runner', :null_object => true)
|
41
|
-
@scenario_runner = mock('scenario runner', :null_object => true)
|
42
|
-
@world_creator = mock('world', :null_object => true)
|
43
|
-
|
44
|
-
@runner_module.stub!(:world_creator).and_return(@world_creator)
|
45
|
-
@runner_module.stub!(:create_story_runner).and_return(@story_runner)
|
46
|
-
@runner_module.stub!(:scenario_runner).and_return(@scenario_runner)
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'should add a reporter to the runner classes' do
|
50
|
-
@runner_module.should_receive(:run_options).and_return(
|
51
|
-
create_options
|
52
|
-
)
|
53
|
-
|
54
|
-
# expect
|
55
|
-
@world_creator.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::PlainTextFormatter))
|
56
|
-
@story_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::PlainTextFormatter))
|
57
|
-
@scenario_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::PlainTextFormatter))
|
58
|
-
|
59
|
-
# when
|
60
|
-
@runner_module.story_runner
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'should add a documenter to the runner classes if one is specified' do
|
64
|
-
|
65
|
-
@runner_module.should_receive(:run_options).and_return(
|
66
|
-
create_options(["--format","html"])
|
67
|
-
)
|
68
|
-
|
69
|
-
# expect
|
70
|
-
@world_creator.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::HtmlFormatter))
|
71
|
-
@story_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::HtmlFormatter))
|
72
|
-
@scenario_runner.should_receive(:add_listener).with(an_instance_of(Spec::Runner::Formatter::Story::HtmlFormatter))
|
73
|
-
|
74
|
-
# when
|
75
|
-
@runner_module.story_runner
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'should add any registered listener to the runner classes' do
|
79
|
-
# given
|
80
|
-
listener = Object.new
|
81
|
-
|
82
|
-
# expect
|
83
|
-
@world_creator.should_receive(:add_listener).with(listener)
|
84
|
-
@story_runner.should_receive(:add_listener).with(listener)
|
85
|
-
@scenario_runner.should_receive(:add_listener).with(listener)
|
86
|
-
|
87
|
-
# when
|
88
|
-
@runner_module.register_listener listener
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/story_helper'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module Story
|
5
|
-
describe Scenario do
|
6
|
-
it 'should not raise an error if no body is supplied' do
|
7
|
-
# given
|
8
|
-
story = StoryBuilder.new.to_story
|
9
|
-
|
10
|
-
# when
|
11
|
-
error = exception_from { Scenario.new story, 'name' }
|
12
|
-
|
13
|
-
# then
|
14
|
-
error.should be_nil
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,157 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/story_helper'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module Story
|
5
|
-
describe StepGroup do
|
6
|
-
before(:each) do
|
7
|
-
@step_group = StepGroup.new
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should not find a matcher if empty" do
|
11
|
-
@step_group.find(:given, "this and that").should be_nil
|
12
|
-
end
|
13
|
-
|
14
|
-
it "should create a given_scenario matcher" do
|
15
|
-
step = @step_group.given_scenario("this and that") {}
|
16
|
-
@step_group.find(:given_scenario, "this and that").should_not be_nil
|
17
|
-
@step_group.find(:given_scenario, "this and that").should equal(step)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should create a given matcher" do
|
21
|
-
step = @step_group.given("this and that") {}
|
22
|
-
@step_group.find(:given, "this and that").should equal(step)
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should create a when matcher" do
|
26
|
-
step = @step_group.when("this and that") {}
|
27
|
-
@step_group.find(:when, "this and that").should equal(step)
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should create a them matcher" do
|
31
|
-
step = @step_group.then("this and that") {}
|
32
|
-
@step_group.find(:then, "this and that").should equal(step)
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should add a matcher object" do
|
36
|
-
step = Step.new("this and that") {}
|
37
|
-
@step_group.add(:given, step)
|
38
|
-
@step_group.find(:given, "this and that").should equal(step)
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should add it matchers to another StepGroup (with one given)" do
|
42
|
-
source = StepGroup.new
|
43
|
-
target = StepGroup.new
|
44
|
-
step = source.given("this and that") {}
|
45
|
-
source.add_to target
|
46
|
-
target.find(:given, "this and that").should equal(step)
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should add it matchers to another StepGroup (with some of each type)" do
|
50
|
-
source = StepGroup.new
|
51
|
-
target = StepGroup.new
|
52
|
-
given_scenario = source.given_scenario("1") {}
|
53
|
-
given = source.given("1") {}
|
54
|
-
when1 = source.when("1") {}
|
55
|
-
when2 = source.when("2") {}
|
56
|
-
then1 = source.then("1") {}
|
57
|
-
then2 = source.then("2") {}
|
58
|
-
then3 = source.then("3") {}
|
59
|
-
source.add_to target
|
60
|
-
target.find(:given_scenario, "1").should equal(given_scenario)
|
61
|
-
target.find(:given, "1").should equal(given)
|
62
|
-
target.find(:when, "1").should equal(when1)
|
63
|
-
target.find(:when, "2").should equal(when2)
|
64
|
-
target.find(:then, "1").should equal(then1)
|
65
|
-
target.find(:then, "2").should equal(then2)
|
66
|
-
target.find(:then, "3").should equal(then3)
|
67
|
-
end
|
68
|
-
|
69
|
-
it "should append another collection" do
|
70
|
-
matchers_to_append = StepGroup.new
|
71
|
-
step = matchers_to_append.given("this and that") {}
|
72
|
-
@step_group << matchers_to_append
|
73
|
-
@step_group.find(:given, "this and that").should equal(step)
|
74
|
-
end
|
75
|
-
|
76
|
-
it "should append several other collections" do
|
77
|
-
matchers_to_append = StepGroup.new
|
78
|
-
more_matchers_to_append = StepGroup.new
|
79
|
-
first_matcher = matchers_to_append.given("this and that") {}
|
80
|
-
second_matcher = more_matchers_to_append.given("and the other") {}
|
81
|
-
@step_group << matchers_to_append
|
82
|
-
@step_group << more_matchers_to_append
|
83
|
-
@step_group.find(:given, "this and that").should equal(first_matcher)
|
84
|
-
@step_group.find(:given, "and the other").should equal(second_matcher)
|
85
|
-
end
|
86
|
-
|
87
|
-
it "should yield itself on initialization" do
|
88
|
-
begin
|
89
|
-
$step_group_spec_step = nil
|
90
|
-
matchers = StepGroup.new do |matchers|
|
91
|
-
$step_group_spec_step = matchers.given("foo") {}
|
92
|
-
end
|
93
|
-
$step_group_spec_step.matches?("foo").should be_true
|
94
|
-
ensure
|
95
|
-
$step_group_spec_step = nil
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
it "should support defaults" do
|
100
|
-
class StepGroupSubclass < StepGroup
|
101
|
-
steps do |add|
|
102
|
-
add.given("foo") {}
|
103
|
-
end
|
104
|
-
end
|
105
|
-
StepGroupSubclass.new.find(:given, "foo").should_not be_nil
|
106
|
-
end
|
107
|
-
|
108
|
-
it "should create a Given" do
|
109
|
-
sub = Class.new(StepGroup).new
|
110
|
-
step = sub.Given("foo") {}
|
111
|
-
sub.find(:given, "foo").should == step
|
112
|
-
end
|
113
|
-
|
114
|
-
it "should create a When" do
|
115
|
-
sub = Class.new(StepGroup).new
|
116
|
-
step = sub.When("foo") {}
|
117
|
-
sub.find(:when, "foo").should == step
|
118
|
-
end
|
119
|
-
|
120
|
-
it "should create a Then" do
|
121
|
-
sub = Class.new(StepGroup).new
|
122
|
-
step = sub.Then("foo") {}
|
123
|
-
sub.find(:then, "foo").should == step
|
124
|
-
end
|
125
|
-
|
126
|
-
it "should create steps in a block" do
|
127
|
-
sub = Class.new(StepGroup).new do
|
128
|
-
Given("a given") {}
|
129
|
-
When("a when") {}
|
130
|
-
Then("a then") {}
|
131
|
-
end
|
132
|
-
sub.find(:given, "a given").should_not be_nil
|
133
|
-
sub.find(:when, "a when").should_not be_nil
|
134
|
-
sub.find(:then, "a then").should_not be_nil
|
135
|
-
end
|
136
|
-
|
137
|
-
it "should clear itself" do
|
138
|
-
step = @step_group.given("this and that") {}
|
139
|
-
@step_group.clear
|
140
|
-
@step_group.find(:given, "this and that").should be_nil
|
141
|
-
end
|
142
|
-
|
143
|
-
it "should tell you when it is empty" do
|
144
|
-
@step_group.should be_empty
|
145
|
-
end
|
146
|
-
|
147
|
-
it "should tell you when it is not empty" do
|
148
|
-
@step_group.given("this and that") {}
|
149
|
-
@step_group.should_not be_empty
|
150
|
-
end
|
151
|
-
|
152
|
-
it "should handle << nil" do
|
153
|
-
@step_group << nil
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|