cucumber-core 1.0.0.beta.4 → 1.0.0

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CONTRIBUTING.md +14 -0
  4. data/HISTORY.md +14 -1
  5. data/README.md +34 -33
  6. data/lib/cucumber/core.rb +3 -5
  7. data/lib/cucumber/core/ast/background.rb +13 -2
  8. data/lib/cucumber/core/ast/comment.rb +8 -2
  9. data/lib/cucumber/core/ast/examples_table.rb +14 -5
  10. data/lib/cucumber/core/ast/feature.rb +15 -6
  11. data/lib/cucumber/core/ast/scenario.rb +17 -4
  12. data/lib/cucumber/core/ast/scenario_outline.rb +20 -8
  13. data/lib/cucumber/core/ast/tag.rb +5 -3
  14. data/lib/cucumber/core/compiler.rb +39 -7
  15. data/lib/cucumber/core/filter.rb +83 -0
  16. data/lib/cucumber/core/gherkin/ast_builder.rb +7 -2
  17. data/lib/cucumber/core/gherkin/document.rb +5 -2
  18. data/lib/cucumber/core/gherkin/parser.rb +6 -1
  19. data/lib/cucumber/core/test/action.rb +8 -8
  20. data/lib/cucumber/core/test/around_hook.rb +19 -0
  21. data/lib/cucumber/core/test/case.rb +6 -4
  22. data/lib/cucumber/core/test/filters/locations_filter.rb +3 -6
  23. data/lib/cucumber/core/test/filters/name_filter.rb +3 -7
  24. data/lib/cucumber/core/test/filters/tag_filter.rb +4 -2
  25. data/lib/cucumber/core/test/result.rb +5 -7
  26. data/lib/cucumber/core/test/runner.rb +39 -40
  27. data/lib/cucumber/core/test/step.rb +7 -10
  28. data/lib/cucumber/core/version.rb +1 -1
  29. data/spec/capture_warnings.rb +5 -0
  30. data/spec/cucumber/core/filter_spec.rb +100 -0
  31. data/spec/cucumber/core/gherkin/parser_spec.rb +0 -1
  32. data/spec/cucumber/core/test/action_spec.rb +29 -31
  33. data/spec/cucumber/core/test/runner_spec.rb +5 -5
  34. data/spec/cucumber/core/test/step_spec.rb +18 -9
  35. data/spec/cucumber/core_spec.rb +40 -172
  36. metadata +11 -16
  37. data/lib/cucumber/core/test/hooks.rb +0 -93
  38. data/lib/cucumber/core/test/mapper.rb +0 -150
  39. data/lib/cucumber/initializer.rb +0 -18
  40. data/spec/cucumber/core/test/hooks_spec.rb +0 -30
  41. data/spec/cucumber/core/test/mapper_spec.rb +0 -203
  42. data/spec/cucumber/initializer_spec.rb +0 -49
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-12-18 00:00:00.000000000 Z
15
+ date: 2015-01-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: gherkin
@@ -123,6 +123,7 @@ files:
123
123
  - ".ruby-gemset"
124
124
  - ".travis.yml"
125
125
  - ".yardopts"
126
+ - CONTRIBUTING.md
126
127
  - Gemfile
127
128
  - HISTORY.md
128
129
  - LICENSE
@@ -148,6 +149,7 @@ files:
148
149
  - lib/cucumber/core/ast/step.rb
149
150
  - lib/cucumber/core/ast/tag.rb
150
151
  - lib/cucumber/core/compiler.rb
152
+ - lib/cucumber/core/filter.rb
151
153
  - lib/cucumber/core/gherkin/ast_builder.rb
152
154
  - lib/cucumber/core/gherkin/document.rb
153
155
  - lib/cucumber/core/gherkin/parser.rb
@@ -156,19 +158,17 @@ files:
156
158
  - lib/cucumber/core/platform.rb
157
159
  - lib/cucumber/core/report/summary.rb
158
160
  - lib/cucumber/core/test/action.rb
161
+ - lib/cucumber/core/test/around_hook.rb
159
162
  - lib/cucumber/core/test/case.rb
160
163
  - lib/cucumber/core/test/filters.rb
161
164
  - lib/cucumber/core/test/filters/locations_filter.rb
162
165
  - lib/cucumber/core/test/filters/name_filter.rb
163
166
  - lib/cucumber/core/test/filters/tag_filter.rb
164
- - lib/cucumber/core/test/hooks.rb
165
- - lib/cucumber/core/test/mapper.rb
166
167
  - lib/cucumber/core/test/result.rb
167
168
  - lib/cucumber/core/test/runner.rb
168
169
  - lib/cucumber/core/test/step.rb
169
170
  - lib/cucumber/core/test/timer.rb
170
171
  - lib/cucumber/core/version.rb
171
- - lib/cucumber/initializer.rb
172
172
  - spec/capture_warnings.rb
173
173
  - spec/coverage.rb
174
174
  - spec/cucumber/core/ast/data_table_spec.rb
@@ -178,19 +178,17 @@ files:
178
178
  - spec/cucumber/core/ast/outline_step_spec.rb
179
179
  - spec/cucumber/core/ast/step_spec.rb
180
180
  - spec/cucumber/core/compiler_spec.rb
181
+ - spec/cucumber/core/filter_spec.rb
181
182
  - spec/cucumber/core/gherkin/parser_spec.rb
182
183
  - spec/cucumber/core/gherkin/writer_spec.rb
183
184
  - spec/cucumber/core/test/action_spec.rb
184
185
  - spec/cucumber/core/test/case_spec.rb
185
186
  - spec/cucumber/core/test/duration_matcher.rb
186
- - spec/cucumber/core/test/hooks_spec.rb
187
- - spec/cucumber/core/test/mapper_spec.rb
188
187
  - spec/cucumber/core/test/result_spec.rb
189
188
  - spec/cucumber/core/test/runner_spec.rb
190
189
  - spec/cucumber/core/test/step_spec.rb
191
190
  - spec/cucumber/core/test/timer_spec.rb
192
191
  - spec/cucumber/core_spec.rb
193
- - spec/cucumber/initializer_spec.rb
194
192
  - spec/readme_spec.rb
195
193
  - spec/report_api_spy.rb
196
194
  homepage: http://cukes.info
@@ -209,15 +207,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
209
207
  version: 1.9.3
210
208
  required_rubygems_version: !ruby/object:Gem::Requirement
211
209
  requirements:
212
- - - ">"
210
+ - - ">="
213
211
  - !ruby/object:Gem::Version
214
- version: 1.3.1
212
+ version: '0'
215
213
  requirements: []
216
214
  rubyforge_project:
217
- rubygems_version: 2.0.14
215
+ rubygems_version: 2.2.2
218
216
  signing_key:
219
217
  specification_version: 4
220
- summary: cucumber-core-1.0.0.beta.4
218
+ summary: cucumber-core-1.0.0
221
219
  test_files:
222
220
  - spec/capture_warnings.rb
223
221
  - spec/coverage.rb
@@ -228,19 +226,16 @@ test_files:
228
226
  - spec/cucumber/core/ast/outline_step_spec.rb
229
227
  - spec/cucumber/core/ast/step_spec.rb
230
228
  - spec/cucumber/core/compiler_spec.rb
229
+ - spec/cucumber/core/filter_spec.rb
231
230
  - spec/cucumber/core/gherkin/parser_spec.rb
232
231
  - spec/cucumber/core/gherkin/writer_spec.rb
233
232
  - spec/cucumber/core/test/action_spec.rb
234
233
  - spec/cucumber/core/test/case_spec.rb
235
234
  - spec/cucumber/core/test/duration_matcher.rb
236
- - spec/cucumber/core/test/hooks_spec.rb
237
- - spec/cucumber/core/test/mapper_spec.rb
238
235
  - spec/cucumber/core/test/result_spec.rb
239
236
  - spec/cucumber/core/test/runner_spec.rb
240
237
  - spec/cucumber/core/test/step_spec.rb
241
238
  - spec/cucumber/core/test/timer_spec.rb
242
239
  - spec/cucumber/core_spec.rb
243
- - spec/cucumber/initializer_spec.rb
244
240
  - spec/readme_spec.rb
245
241
  - spec/report_api_spy.rb
246
- has_rdoc:
@@ -1,93 +0,0 @@
1
- require 'cucumber/initializer'
2
-
3
- module Cucumber
4
- module Core
5
- module Test
6
- module Hooks
7
-
8
- class BeforeHook
9
- include Cucumber.initializer(:location)
10
- public :location
11
-
12
- def name
13
- "Before hook"
14
- end
15
-
16
- def match_locations?(queried_locations)
17
- queried_locations.any? { |other_location| other_location.match?(location) }
18
- end
19
-
20
- def describe_to(visitor, *args)
21
- visitor.before_hook(self, *args)
22
- end
23
- end
24
-
25
- class AfterHook
26
- include Cucumber.initializer(:location)
27
- public :location
28
-
29
- def name
30
- "After hook"
31
- end
32
-
33
- def match_locations?(queried_locations)
34
- queried_locations.any? { |other_location| other_location.match?(location) }
35
- end
36
-
37
- def describe_to(visitor, *args)
38
- visitor.after_hook(self, *args)
39
- end
40
- end
41
-
42
- class AroundHook
43
- def initialize(&block)
44
- @block = block
45
- end
46
-
47
- def describe_to(visitor, *args, &continue)
48
- visitor.around_hook(self, *args, &continue)
49
- end
50
-
51
- def call(continue)
52
- @block.call(continue)
53
- end
54
- end
55
-
56
- class BeforeStepHook
57
- include Cucumber.initializer(:location)
58
- public :location
59
-
60
- def name
61
- "BeforeStep hook"
62
- end
63
-
64
- def match_locations?(queried_locations)
65
- queried_locations.any? { |other_location| other_location.match?(location) }
66
- end
67
-
68
- def describe_to(visitor, *args)
69
- visitor.before_step_hook(self, *args)
70
- end
71
- end
72
-
73
- class AfterStepHook
74
- include Cucumber.initializer(:location)
75
- public :location
76
-
77
- def name
78
- "AfterStep hook"
79
- end
80
-
81
- def match_locations?(queried_locations)
82
- queried_locations.any? { |other_location| other_location.match?(location) }
83
- end
84
-
85
- def describe_to(visitor, *args)
86
- visitor.after_step_hook(self, *args)
87
- end
88
- end
89
-
90
- end
91
- end
92
- end
93
- end
@@ -1,150 +0,0 @@
1
- require 'cucumber/initializer'
2
- require 'cucumber/core/test/hooks'
3
-
4
- module Cucumber
5
- module Core
6
- module Test
7
- class Mapper
8
- include Cucumber.initializer(:mapping_definition, :receiver)
9
-
10
- def test_case(test_case, &descend)
11
- hook_factory = HookFactory.new(test_case.source)
12
- mapper = CaseMapper.new(mapping_definition)
13
- test_case.describe_to mapping_definition, CaseMapper::DSL.new(mapper, hook_factory)
14
- descend.call(mapper)
15
- test_case.
16
- with_steps(mapper.before_hooks + mapper.test_steps + mapper.after_hooks).
17
- with_around_hooks(mapper.around_hooks).
18
- describe_to(receiver)
19
- self
20
- end
21
-
22
- def done
23
- receiver.done
24
- self
25
- end
26
-
27
- private
28
-
29
- class CaseMapper
30
- include Cucumber.initializer(:mapping_definition)
31
-
32
- def test_step(test_step)
33
- hook_factory = HookFactory.new(test_step.source)
34
- mapper = StepMapper.new(test_step)
35
- test_step.describe_to mapping_definition, StepMapper::DSL.new(mapper, hook_factory)
36
- test_steps.push(*(mapper.before_step_hooks + [mapper.test_step] + mapper.after_step_hooks))
37
- self
38
- end
39
-
40
- def test_steps
41
- @test_steps ||= []
42
- end
43
-
44
- def around_hooks
45
- @around_hooks ||= []
46
- end
47
-
48
- def before_hooks
49
- @before_hooks ||= []
50
- end
51
-
52
- def after_hooks
53
- @after_hooks ||= []
54
- end
55
-
56
- # Passed to users in the mappings to add hooks to a scenario
57
- class DSL
58
- include Cucumber.initializer(:mapper, :hook_factory)
59
-
60
- # Run this block of code before the scenario
61
- def before(&block)
62
- mapper.before_hooks << hook_factory.before(block)
63
- self
64
- end
65
-
66
- # Run this block of code after the scenario
67
- def after(&block)
68
- mapper.after_hooks.unshift(hook_factory.after(block))
69
- self
70
- end
71
-
72
- # Run this block of code around the scenario, with a yield in the block executing the scenario
73
- def around(&block)
74
- mapper.around_hooks << Hooks::AroundHook.new(&block)
75
- self
76
- end
77
-
78
- end
79
- end
80
-
81
- class StepMapper
82
- include Cucumber.initializer(:test_step)
83
-
84
- attr_accessor :test_step
85
-
86
- def before_step_hooks
87
- @before_step_hooks ||= []
88
- end
89
-
90
- def after_step_hooks
91
- @after_step_hooks ||= []
92
- end
93
-
94
- # Passed to users in the mappings to define and add hooks to a step
95
- class DSL
96
- include Cucumber.initializer(:mapper, :hook_factory)
97
-
98
- def before(&block)
99
- mapper.before_step_hooks << hook_factory.before_step(block)
100
- end
101
-
102
- # Define the step with a block of code to be executed
103
- def map(&block)
104
- mapper.test_step = mapper.test_step.with_mapping(&block)
105
- self
106
- end
107
-
108
- # Define a block of code to be run after the step
109
- def after(&block)
110
- mapper.after_step_hooks << hook_factory.after_step(block)
111
- self
112
- end
113
-
114
- end
115
- end
116
-
117
- class HookFactory
118
- include Cucumber.initializer(:source)
119
-
120
- def after(block)
121
- build_hook_step(block, Hooks::AfterHook, Test::UnskippableAction)
122
- end
123
-
124
- def before(block)
125
- build_hook_step(block, Hooks::BeforeHook, Test::UnskippableAction)
126
- end
127
-
128
- def before_step(block)
129
- build_hook_step(block, Hooks::BeforeStepHook, Test::UnskippableAction)
130
- end
131
-
132
- def after_step(block)
133
- build_hook_step(block, Hooks::AfterStepHook, Test::Action)
134
- end
135
-
136
- private
137
-
138
- def build_hook_step(block, hook_type, mapping_type)
139
- mapping = mapping_type.new(&block)
140
- hook = hook_type.new(mapping.location)
141
- Step.new(source + [hook], mapping)
142
- end
143
-
144
- end
145
-
146
-
147
- end
148
- end
149
- end
150
- end
@@ -1,18 +0,0 @@
1
- module Cucumber
2
- def self.initializer(*attributes)
3
- Module.new do
4
- attr_reader(*attributes)
5
- private(*attributes)
6
-
7
- define_method(:initialize) do |*arguments|
8
- if attributes.size != arguments.size
9
- raise ArgumentError, "wrong number of arguments (#{arguments.size} for #{attributes.size})"
10
- end
11
-
12
- attributes.zip(arguments) do |attribute, argument|
13
- instance_variable_set("@#{attribute}", argument)
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,30 +0,0 @@
1
- require 'cucumber/core/test/hooks'
2
- module Cucumber::Core::Test::Hooks
3
- shared_examples_for 'a source node' do
4
- it "responds to name" do
5
- expect( subject.name ).to be_a(String)
6
- end
7
-
8
- it "responds to location" do
9
- expect( subject.location ).to eq(location)
10
- end
11
-
12
- it "responds to match_locations?" do
13
- expect( subject.match_locations? [location] ).to be_truthy
14
- expect( subject.match_locations? [] ).to be_falsey
15
- end
16
- end
17
-
18
- require 'cucumber/core/ast/location'
19
- describe BeforeHook do
20
- subject { BeforeHook.new(location) }
21
- let(:location) { Cucumber::Core::Ast::Location.new('hooks.rb', 1) }
22
- it_behaves_like 'a source node'
23
- end
24
-
25
- describe AfterHook do
26
- subject { AfterHook.new(location) }
27
- let(:location) { Cucumber::Core::Ast::Location.new('hooks.rb', 1) }
28
- it_behaves_like 'a source node'
29
- end
30
- end
@@ -1,203 +0,0 @@
1
- require 'cucumber/core/test/mapper'
2
- require 'cucumber/core/test/case'
3
- require 'cucumber/core/test/step'
4
- require 'cucumber/core/ast'
5
-
6
- module Cucumber
7
- module Core
8
- module Test
9
- describe Mapper do
10
-
11
- ExampleMappings = Struct.new(:app) do
12
- def test_case(test_case, mapper)
13
- end
14
-
15
- def test_step(test_step, mapper)
16
- mapper.map { app.do_something } if test_step.name == 'mapped'
17
- end
18
- end
19
-
20
- let(:mapper) { Mapper.new(mappings, receiver) }
21
- let(:receiver) { double('receiver') }
22
- before { allow(receiver).to receive(:test_case).and_yield(receiver) }
23
- let(:mappings) { ExampleMappings.new(app) }
24
- let(:app) { double('app') }
25
- let(:last_result) { double('last_result') }
26
-
27
- context "an unmapped step" do
28
- let(:test_step) { Test::Step.new([double(name: 'unmapped')]) }
29
- let(:test_case) { Test::Case.new([test_step], double) }
30
-
31
- it "maps to a step that executes to an undefined result" do
32
- expect( receiver ).to receive(:test_step) do |test_step|
33
- expect( test_step.name ).to eq 'unmapped'
34
- expect( test_step.execute(last_result) ).to be_undefined
35
- end.once.ordered
36
- test_case.describe_to mapper
37
- end
38
- end
39
-
40
- context "a mapped step" do
41
- let(:test_step) { Test::Step.new([double(name: 'mapped')]) }
42
- let(:test_case) { Test::Case.new([test_step], double) }
43
-
44
- it "maps to a step that executes the block" do
45
- expect( receiver ).to receive(:test_step) do |test_step|
46
- expect( test_step.name ).to eq 'mapped'
47
- expect( app ).to receive(:do_something)
48
- test_step.execute(last_result)
49
- end.once.ordered
50
- test_case.describe_to mapper
51
- end
52
- end
53
-
54
- context "a combination" do
55
- let(:mapped) { Test::Step.new([double(name: 'passing')]) }
56
- let(:unmapped) { Test::Step.new([double(name: 'unmapped')]) }
57
- let(:test_case) { Test::Case.new([mapped, unmapped], double) }
58
-
59
- it "maps each of the test steps" do
60
- expect( receiver ).to receive(:test_step) do |test_step|
61
- expect( test_step.name ).to eq 'passing'
62
- end.once.ordered
63
- expect( receiver ).to receive(:test_step) do |test_step|
64
- expect( test_step.name ).to eq 'unmapped'
65
- end.once.ordered
66
- test_case.describe_to mapper
67
- end
68
- end
69
-
70
- context "mapping hooks" do
71
- let(:test_case) { Case.new([test_step], source) }
72
- let(:test_step) { Step.new([Ast::Step.new(:node, :language, :location, :keyword, :name, :multiline_arg)]) }
73
- let(:source) { [feature, scenario] }
74
- let(:feature) { double('feature') }
75
- let(:scenario) { double('scenario', location: 'test') }
76
-
77
- it "prepends before hooks to the test case" do
78
- allow( mappings ).to receive(:test_case) do |test_case, mapper|
79
- mapper.before {}
80
- end
81
- expect( receiver ).to receive(:test_case) do |test_case|
82
- expect( test_case.step_count ).to eq 2
83
- end
84
- test_case.describe_to mapper
85
- end
86
-
87
- it "appends after hooks to the test case" do
88
- allow( mappings ).to receive(:test_case) do |test_case, mapper|
89
- mapper.after {}
90
- end
91
- expect( receiver ).to receive(:test_case) do |test_case|
92
- expect( test_case.step_count ).to eq 2
93
- end
94
- test_case.describe_to mapper
95
- end
96
-
97
- it "adds hooks in the right order" do
98
- log = double
99
- allow(mappings).to receive(:test_case) do |test_case, mapper|
100
- mapper.before { log.before_hook_1 }
101
- mapper.before { log.before_hook_2 }
102
- mapper.after { log.after_hook_1 }
103
- mapper.after { log.after_hook_2 }
104
- end
105
- mapped_step = test_step.with_mapping { log.step_1 }
106
- test_case = Case.new([mapped_step], source)
107
-
108
- expect( log ).to receive(:before_hook_1).ordered
109
- expect( log ).to receive(:before_hook_2).ordered
110
- expect( log ).to receive(:step_1).ordered
111
- expect( log ).to receive(:after_hook_2).ordered
112
- expect( log ).to receive(:after_hook_1).ordered
113
-
114
- allow(receiver).to receive(:test_case).and_yield(receiver)
115
- allow(receiver).to receive(:test_step) do |test_step|
116
- test_step.execute(last_result)
117
- end
118
-
119
- test_case.describe_to mapper
120
- end
121
-
122
- it "sets the source to include the before hook, scenario and feature" do
123
- test_case = Case.new([], source)
124
- allow(mappings).to receive(:test_case) do |test_case_to_be_mapped, mapper|
125
- mapper.before {}
126
- end
127
- allow(receiver).to receive(:test_case).and_yield(receiver)
128
- allow(receiver).to receive(:test_step) do |test_step|
129
- args = double('args')
130
- visitor = double('visitor')
131
- expect( feature ).to receive(:describe_to)
132
- expect( scenario ).to receive(:describe_to)
133
- expect( visitor ).to receive(:before_hook) do |hook, hook_args|
134
- expect( args ).to eq(hook_args)
135
- expect( hook.location.to_s ).to eq("#{__FILE__}:125")
136
- end
137
- test_step.describe_source_to(visitor, args)
138
- end
139
- test_case.describe_to mapper
140
- end
141
-
142
- it "sets the source to include the after hook" do
143
- test_case = Case.new([], source)
144
- allow(mappings).to receive(:test_case) do |test_case_to_be_mapped, mapper|
145
- mapper.after {}
146
- end
147
- allow(receiver).to receive(:test_case).and_yield(receiver)
148
- allow(receiver).to receive(:test_step) do |test_step|
149
- args = double('args')
150
- visitor = double('visitor')
151
- expect( feature ).to receive(:describe_to)
152
- expect( scenario ).to receive(:describe_to)
153
- expect( visitor ).to receive(:after_hook) do |hook, hook_args|
154
- expect( args ).to eq(hook_args)
155
- expect( hook.location.to_s ).to eq("#{__FILE__}:145")
156
- end
157
- test_step.describe_source_to(visitor, args)
158
- end
159
- test_case.describe_to mapper
160
- end
161
-
162
- it "appends after_step hooks to the test step" do
163
- allow(mappings).to receive(:test_step) do |test_step, mapper|
164
- mapper.after {}
165
- end
166
- args = double('args')
167
- visitor = double('visitor')
168
- allow(receiver).to receive(:test_case).and_yield(receiver)
169
- allow(receiver).to receive(:test_step) do |test_step|
170
- test_step.describe_source_to(visitor, args)
171
- end
172
- expect( visitor ).to receive(:step).ordered
173
- expect( visitor ).to receive(:after_step_hook) do |hook, hook_args|
174
- expect( args ).to eq(hook_args)
175
- expect( hook.location.to_s ).to eq("#{__FILE__}:164")
176
- end.once.ordered
177
- expect( visitor ).to receive(:step).ordered
178
- test_case.describe_to mapper
179
- end
180
-
181
- it "prepends before_step hooks to the test step" do
182
- allow(mappings).to receive(:test_step) do |test_step, mapper|
183
- mapper.before {}
184
- end
185
- args = double('args')
186
- visitor = double('visitor')
187
- allow(receiver).to receive(:test_case) do |test_case|
188
- test_case.test_steps.first.describe_source_to(visitor, args)
189
- end
190
- expect( visitor ).to receive(:before_step_hook) do |hook, hook_args|
191
- expect( args ).to eq(hook_args)
192
- expect( hook.location.to_s ).to eq("#{__FILE__}:183")
193
- end.once.ordered
194
- expect( visitor ).to receive(:step).ordered
195
- test_case.describe_to mapper
196
- end
197
-
198
- end
199
- end
200
-
201
- end
202
- end
203
- end