Class: Turnip::Node::ScenarioOutline
- Inherits:
-
ScenarioDefinition
- Object
- Base
- ScenarioDefinition
- Turnip::Node::ScenarioOutline
- Includes:
- HasTags
- Defined in:
- lib/turnip/node/scenario_outline.rb
Overview
Note:
ScenarioOutline metadata generated by Gherkin
{
type: :Scenario,
tags: [], # Array of Tag
location: { line: 10, column: 3 },
keyword: "Scenario Outline",
name: "Scenario Outline Description",
steps: []
}
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
- #examples ⇒ Object
-
#to_scenarios ⇒ Array
Return array of Scenario.
Methods included from HasTags
#metadata_hash, #tag_names, #tags
Methods inherited from ScenarioDefinition
#description, #keyword, #name, #steps
Methods inherited from Base
Methods included from HasLocation
Constructor Details
This class inherits a constructor from Turnip::Node::Base
Instance Method Details
#examples ⇒ Object
22 23 24 25 26 |
# File 'lib/turnip/node/scenario_outline.rb', line 22 def examples @examples ||= @raw.examples.map do |raw| Example.new(raw) end end |
#to_scenarios ⇒ Array
Note:
example:
Scenario Outline: Test
Then I go to <where>
Examples:
| where |
| bank |
| airport |
to
Scenario: Test
Then I go to bank
Scenario: Test
Then I go to airport
Return array of Scenario
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/turnip/node/scenario_outline.rb', line 53 def to_scenarios return [] if examples.nil? @scenarios ||= examples.map do |example| header = example.header example.rows.map do |row| scenario = (header, row) # # Replace <placeholder> using Example values # scenario.steps.each do |step| step.text = substitute(step.text, header, row) case when step.block&.is_a?(CukeModeler::DocString) step.block.content = substitute(step.block.content, header, row) when step.block&.is_a?(CukeModeler::Table) step.block.rows.map do |table_row| table_row.cells.map do |cell| cell.value = substitute(cell.value, header, row) end end end end Scenario.new(scenario) end end.flatten.compact end |