cuke_modeler 0.4.1 → 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.
- checksums.yaml +4 -4
- data/.gitignore +17 -17
- data/.travis.yml +1 -1
- data/Gemfile +4 -0
- data/History.rdoc +71 -3
- data/LICENSE.txt +22 -22
- data/README.md +24 -10
- data/Rakefile +2 -12
- data/cuke_modeler.gemspec +1 -1
- data/features/analysis/test_comparison.feature +37 -122
- data/features/modeling/background_modeling.feature +77 -0
- data/features/modeling/background_output.feature +42 -0
- data/features/modeling/cell_modeling.feature +23 -0
- data/features/modeling/cell_output.feature +22 -0
- data/features/modeling/directory_modeling.feature +65 -0
- data/features/modeling/directory_output.feature +12 -0
- data/features/modeling/doc_string_modeling.feature +61 -0
- data/features/modeling/doc_string_output.feature +32 -0
- data/features/modeling/example_modeling.feature +125 -0
- data/features/modeling/example_output.feature +39 -0
- data/features/modeling/feature_file_modeling.feature +40 -0
- data/features/modeling/feature_file_output.feature +12 -0
- data/features/modeling/feature_modeling.feature +109 -0
- data/features/modeling/feature_output.feature +104 -0
- data/features/modeling/model_output.feature +22 -0
- data/features/modeling/model_structure.feature +48 -0
- data/features/modeling/outline_modeling.feature +144 -0
- data/features/modeling/outline_output.feature +69 -0
- data/features/modeling/row_modeling.feature +48 -0
- data/features/modeling/row_output.feature +22 -0
- data/features/modeling/scenario_modeling.feature +118 -0
- data/features/modeling/scenario_output.feature +45 -0
- data/features/modeling/step_modeling.feature +84 -0
- data/features/modeling/step_output.feature +29 -0
- data/features/modeling/table_modeling.feature +50 -0
- data/features/modeling/table_output.feature +24 -0
- data/features/modeling/tag_modeling.feature +43 -0
- data/features/modeling/tag_output.feature +22 -0
- data/features/step_definitions/action_steps.rb +11 -1
- data/features/step_definitions/background_steps.rb +1 -85
- data/features/step_definitions/directory_steps.rb +2 -48
- data/features/step_definitions/doc_string_steps.rb +1 -67
- data/features/step_definitions/feature_file_steps.rb +2 -37
- data/features/step_definitions/feature_steps.rb +4 -100
- data/features/step_definitions/modeling_steps.rb +44 -0
- data/features/step_definitions/setup_steps.rb +19 -41
- data/features/step_definitions/step_steps.rb +2 -166
- data/features/step_definitions/table_steps.rb +1 -58
- data/features/step_definitions/tag_steps.rb +2 -72
- data/features/step_definitions/verification_steps.rb +152 -4
- data/features/support/env.rb +4 -6
- data/gemfiles/{gherkin.gemfile → gherkin2.gemfile} +4 -0
- data/gemfiles/gherkin3.gemfile +4 -0
- data/gemfiles/gherkin4.gemfile +4 -0
- data/lib/cuke_modeler.rb +24 -22
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +103 -31
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +103 -40
- data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +111 -50
- data/lib/cuke_modeler/containing.rb +255 -4
- data/lib/cuke_modeler/described.rb +28 -0
- data/lib/cuke_modeler/models/background.rb +66 -0
- data/lib/cuke_modeler/models/cell.rb +48 -0
- data/lib/cuke_modeler/models/directory.rb +95 -0
- data/lib/cuke_modeler/models/doc_string.rb +59 -0
- data/lib/cuke_modeler/models/example.rb +167 -0
- data/lib/cuke_modeler/models/feature.rb +106 -0
- data/lib/cuke_modeler/models/feature_file.rb +64 -0
- data/lib/cuke_modeler/models/model.rb +32 -0
- data/lib/cuke_modeler/models/outline.rb +79 -0
- data/lib/cuke_modeler/models/row.rb +49 -0
- data/lib/cuke_modeler/models/scenario.rb +69 -0
- data/lib/cuke_modeler/models/step.rb +68 -0
- data/lib/cuke_modeler/models/table.rb +67 -0
- data/lib/cuke_modeler/models/tag.rb +46 -0
- data/lib/cuke_modeler/named.rb +19 -0
- data/lib/cuke_modeler/nested.rb +22 -15
- data/lib/cuke_modeler/parsed.rb +11 -0
- data/lib/cuke_modeler/parsing.rb +66 -83
- data/lib/cuke_modeler/sourceable.rb +3 -11
- data/lib/cuke_modeler/stepped.rb +24 -0
- data/lib/cuke_modeler/taggable.rb +6 -29
- data/lib/cuke_modeler/version.rb +2 -1
- data/spec/integration/background_integration_spec.rb +332 -7
- data/spec/integration/cell_integration_spec.rb +321 -0
- data/spec/integration/directory_integration_spec.rb +175 -9
- data/spec/integration/doc_string_integration_spec.rb +318 -7
- data/spec/integration/example_integration_spec.rb +602 -19
- data/spec/integration/feature_file_integration_spec.rb +98 -3
- data/spec/integration/feature_integration_spec.rb +445 -27
- data/spec/integration/gherkin_2_adapter_spec.rb +122 -0
- data/spec/integration/gherkin_3_adapter_spec.rb +125 -0
- data/spec/integration/gherkin_4_adapter_spec.rb +123 -0
- data/spec/integration/model_integration_spec.rb +15 -0
- data/spec/integration/nested_integration_spec.rb +91 -0
- data/spec/integration/outline_integration_spec.rb +485 -12
- data/spec/integration/parsing_integration_spec.rb +85 -0
- data/spec/integration/row_integration_spec.rb +221 -18
- data/spec/integration/scenario_integration_spec.rb +368 -14
- data/spec/integration/shared/models_integration_specs.rb +18 -0
- data/spec/integration/step_integration_spec.rb +328 -77
- data/spec/integration/table_integration_spec.rb +242 -20
- data/spec/integration/tag_integration_spec.rb +178 -13
- data/spec/spec_helper.rb +32 -18
- data/spec/unit/background_unit_spec.rb +24 -44
- data/spec/unit/cell_unit_spec.rb +73 -0
- data/spec/unit/described_unit_spec.rb +23 -0
- data/spec/unit/directory_unit_spec.rb +52 -62
- data/spec/unit/doc_string_unit_spec.rb +47 -100
- data/spec/unit/example_unit_spec.rb +50 -296
- data/spec/unit/feature_file_unit_spec.rb +53 -52
- data/spec/unit/feature_unit_spec.rb +39 -83
- data/spec/unit/model_unit_spec.rb +15 -0
- data/spec/unit/named_unit_spec.rb +23 -0
- data/spec/unit/nested_unit_spec.rb +24 -21
- data/spec/unit/outline_unit_spec.rb +46 -69
- data/spec/unit/parsed_unit_spec.rb +27 -0
- data/spec/unit/parsing_unit_spec.rb +2 -70
- data/spec/unit/row_unit_spec.rb +22 -51
- data/spec/unit/scenario_unit_spec.rb +27 -59
- data/spec/unit/{bare_bones_unit_specs.rb → shared/bare_bones_models_unit_specs.rb} +2 -2
- data/spec/unit/shared/containing_models_unit_specs.rb +18 -0
- data/spec/unit/shared/described_models_unit_specs.rb +38 -0
- data/spec/unit/shared/models_unit_specs.rb +15 -0
- data/spec/unit/shared/named_models_unit_specs.rb +39 -0
- data/spec/unit/shared/nested_models_unit_specs.rb +51 -0
- data/spec/unit/shared/parsed_models_unit_specs.rb +39 -0
- data/spec/unit/shared/prepopulated_models_unit_specs.rb +18 -0
- data/spec/unit/shared/sourced_models_unit_specs.rb +39 -0
- data/spec/unit/shared/stepped_models_unit_specs.rb +46 -0
- data/spec/unit/shared/stringifiable_models_unit_specs.rb +18 -0
- data/spec/unit/shared/tagged_models_unit_specs.rb +72 -0
- data/spec/unit/sourceable_unit_spec.rb +12 -4
- data/spec/unit/step_unit_spec.rb +40 -231
- data/spec/unit/stepped_unit_spec.rb +23 -0
- data/spec/unit/table_unit_spec.rb +27 -89
- data/spec/unit/tag_unit_spec.rb +30 -53
- data/spec/unit/taggable_unit_spec.rb +26 -42
- data/todo.txt +32 -0
- metadata +135 -217
- data/features/analysis/test_manipulation.feature +0 -37
- data/features/modeling/gherkin/background_modeling.feature +0 -65
- data/features/modeling/gherkin/background_output.feature +0 -131
- data/features/modeling/gherkin/directory_modeling.feature +0 -110
- data/features/modeling/gherkin/directory_output.feature +0 -14
- data/features/modeling/gherkin/doc_string_modeling.feature +0 -53
- data/features/modeling/gherkin/doc_string_output.feature +0 -72
- data/features/modeling/gherkin/example_modeling.feature +0 -101
- data/features/modeling/gherkin/example_output.feature +0 -193
- data/features/modeling/gherkin/feature_file_modeling.feature +0 -54
- data/features/modeling/gherkin/feature_file_output.feature +0 -14
- data/features/modeling/gherkin/feature_modeling.feature +0 -154
- data/features/modeling/gherkin/feature_output.feature +0 -245
- data/features/modeling/gherkin/outline_modeling.feature +0 -90
- data/features/modeling/gherkin/outline_output.feature +0 -198
- data/features/modeling/gherkin/row_modeling.feature +0 -68
- data/features/modeling/gherkin/row_output.feature +0 -28
- data/features/modeling/gherkin/scenario_modeling.feature +0 -79
- data/features/modeling/gherkin/scenario_output.feature +0 -148
- data/features/modeling/gherkin/step_modeling.feature +0 -75
- data/features/modeling/gherkin/step_output.feature +0 -53
- data/features/modeling/gherkin/table_modeling.feature +0 -42
- data/features/modeling/gherkin/table_output.feature +0 -43
- data/features/modeling/gherkin/table_row_modeling.feature +0 -57
- data/features/modeling/gherkin/table_row_output.feature +0 -28
- data/features/modeling/gherkin/tag_modeling.feature +0 -48
- data/features/modeling/gherkin/tag_output.feature +0 -17
- data/features/modeling/gherkin3/background_modeling.feature +0 -64
- data/features/modeling/gherkin3/background_output.feature +0 -131
- data/features/modeling/gherkin3/directory_modeling.feature +0 -110
- data/features/modeling/gherkin3/directory_output.feature +0 -14
- data/features/modeling/gherkin3/doc_string_modeling.feature +0 -53
- data/features/modeling/gherkin3/doc_string_output.feature +0 -72
- data/features/modeling/gherkin3/example_modeling.feature +0 -100
- data/features/modeling/gherkin3/example_output.feature +0 -207
- data/features/modeling/gherkin3/feature_file_modeling.feature +0 -54
- data/features/modeling/gherkin3/feature_file_output.feature +0 -14
- data/features/modeling/gherkin3/feature_modeling.feature +0 -155
- data/features/modeling/gherkin3/feature_output.feature +0 -249
- data/features/modeling/gherkin3/outline_modeling.feature +0 -89
- data/features/modeling/gherkin3/outline_output.feature +0 -255
- data/features/modeling/gherkin3/row_modeling.feature +0 -68
- data/features/modeling/gherkin3/row_output.feature +0 -28
- data/features/modeling/gherkin3/scenario_modeling.feature +0 -78
- data/features/modeling/gherkin3/scenario_output.feature +0 -148
- data/features/modeling/gherkin3/step_modeling.feature +0 -75
- data/features/modeling/gherkin3/step_output.feature +0 -53
- data/features/modeling/gherkin3/table_modeling.feature +0 -42
- data/features/modeling/gherkin3/table_output.feature +0 -43
- data/features/modeling/gherkin3/table_row_modeling.feature +0 -57
- data/features/modeling/gherkin3/table_row_output.feature +0 -28
- data/features/modeling/gherkin3/tag_modeling.feature +0 -49
- data/features/modeling/gherkin3/tag_output.feature +0 -17
- data/features/modeling/gherkin4/background_modeling.feature +0 -64
- data/features/modeling/gherkin4/background_output.feature +0 -131
- data/features/modeling/gherkin4/directory_modeling.feature +0 -110
- data/features/modeling/gherkin4/directory_output.feature +0 -14
- data/features/modeling/gherkin4/doc_string_modeling.feature +0 -53
- data/features/modeling/gherkin4/doc_string_output.feature +0 -72
- data/features/modeling/gherkin4/example_modeling.feature +0 -100
- data/features/modeling/gherkin4/example_output.feature +0 -193
- data/features/modeling/gherkin4/feature_file_modeling.feature +0 -54
- data/features/modeling/gherkin4/feature_file_output.feature +0 -14
- data/features/modeling/gherkin4/feature_modeling.feature +0 -153
- data/features/modeling/gherkin4/feature_output.feature +0 -245
- data/features/modeling/gherkin4/outline_modeling.feature +0 -89
- data/features/modeling/gherkin4/outline_output.feature +0 -198
- data/features/modeling/gherkin4/row_modeling.feature +0 -68
- data/features/modeling/gherkin4/row_output.feature +0 -28
- data/features/modeling/gherkin4/scenario_modeling.feature +0 -78
- data/features/modeling/gherkin4/scenario_output.feature +0 -148
- data/features/modeling/gherkin4/step_modeling.feature +0 -75
- data/features/modeling/gherkin4/step_output.feature +0 -53
- data/features/modeling/gherkin4/table_modeling.feature +0 -42
- data/features/modeling/gherkin4/table_output.feature +0 -43
- data/features/modeling/gherkin4/table_row_modeling.feature +0 -57
- data/features/modeling/gherkin4/table_row_output.feature +0 -28
- data/features/modeling/gherkin4/tag_modeling.feature +0 -48
- data/features/modeling/gherkin4/tag_output.feature +0 -17
- data/features/step_definitions/outline_steps.rb +0 -258
- data/features/step_definitions/test_steps.rb +0 -123
- data/lib/cuke_modeler/background.rb +0 -38
- data/lib/cuke_modeler/directory.rb +0 -83
- data/lib/cuke_modeler/doc_string.rb +0 -87
- data/lib/cuke_modeler/example.rb +0 -195
- data/lib/cuke_modeler/feature.rb +0 -147
- data/lib/cuke_modeler/feature_element.rb +0 -73
- data/lib/cuke_modeler/feature_file.rb +0 -77
- data/lib/cuke_modeler/outline.rb +0 -68
- data/lib/cuke_modeler/raw.rb +0 -20
- data/lib/cuke_modeler/row.rb +0 -64
- data/lib/cuke_modeler/scenario.rb +0 -45
- data/lib/cuke_modeler/step.rb +0 -216
- data/lib/cuke_modeler/table.rb +0 -90
- data/lib/cuke_modeler/table_row.rb +0 -64
- data/lib/cuke_modeler/tag.rb +0 -62
- data/lib/cuke_modeler/test_element.rb +0 -79
- data/lib/cuke_modeler/world.rb +0 -113
- data/spec/integration/table_row_integration_spec.rb +0 -76
- data/spec/integration/world_integration_spec.rb +0 -14
- data/spec/unit/containing_element_unit_specs.rb +0 -18
- data/spec/unit/feature_element_unit_spec.rb +0 -19
- data/spec/unit/feature_element_unit_specs.rb +0 -52
- data/spec/unit/nested_element_unit_specs.rb +0 -39
- data/spec/unit/prepopulated_unit_specs.rb +0 -14
- data/spec/unit/raw_element_unit_specs.rb +0 -27
- data/spec/unit/raw_unit_spec.rb +0 -28
- data/spec/unit/sourced_element_unit_specs.rb +0 -18
- data/spec/unit/table_row_unit_spec.rb +0 -102
- data/spec/unit/tagged_element_unit_specs.rb +0 -67
- data/spec/unit/test_element_unit_spec.rb +0 -54
- data/spec/unit/test_element_unit_specs.rb +0 -34
- data/spec/unit/world_unit_spec.rb +0 -140
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Feature: Outline output
|
|
2
|
+
|
|
3
|
+
An outline model's string output is a Gherkin representation of itself.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Scenario: Outputting an outline model
|
|
7
|
+
Given the following gherkin:
|
|
8
|
+
"""
|
|
9
|
+
@tag1@tag2
|
|
10
|
+
@tag3
|
|
11
|
+
Scenario Outline: An outline with everything that it could have
|
|
12
|
+
|
|
13
|
+
Some description.
|
|
14
|
+
Some more description.
|
|
15
|
+
|
|
16
|
+
* a step
|
|
17
|
+
|value|
|
|
18
|
+
* a <value> step
|
|
19
|
+
\"\"\"
|
|
20
|
+
some string
|
|
21
|
+
\"\"\"
|
|
22
|
+
|
|
23
|
+
Examples:
|
|
24
|
+
Some description.
|
|
25
|
+
Some more description.
|
|
26
|
+
| value |
|
|
27
|
+
| x |
|
|
28
|
+
@example_tag
|
|
29
|
+
|
|
30
|
+
Examples:
|
|
31
|
+
| value |
|
|
32
|
+
| y |
|
|
33
|
+
"""
|
|
34
|
+
And an outline model based on that gherkin
|
|
35
|
+
"""
|
|
36
|
+
@model = CukeModeler::Outline.new(<source_text>)
|
|
37
|
+
"""
|
|
38
|
+
When the model is output as a string
|
|
39
|
+
"""
|
|
40
|
+
@model.to_s
|
|
41
|
+
"""
|
|
42
|
+
Then the following text is provided:
|
|
43
|
+
"""
|
|
44
|
+
@tag1 @tag2 @tag3
|
|
45
|
+
Scenario Outline: An outline with everything that it could have
|
|
46
|
+
|
|
47
|
+
Some description.
|
|
48
|
+
Some more description.
|
|
49
|
+
|
|
50
|
+
* a step
|
|
51
|
+
| value |
|
|
52
|
+
* a <value> step
|
|
53
|
+
\"\"\"
|
|
54
|
+
some string
|
|
55
|
+
\"\"\"
|
|
56
|
+
|
|
57
|
+
Examples:
|
|
58
|
+
|
|
59
|
+
Some description.
|
|
60
|
+
Some more description.
|
|
61
|
+
|
|
62
|
+
| value |
|
|
63
|
+
| x |
|
|
64
|
+
|
|
65
|
+
@example_tag
|
|
66
|
+
Examples:
|
|
67
|
+
| value |
|
|
68
|
+
| y |
|
|
69
|
+
"""
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Feature: Row modeling
|
|
2
|
+
|
|
3
|
+
Row models represent an individual row in a step or example table. They expose several attributes of the row
|
|
4
|
+
that they represent.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given the following gherkin:
|
|
9
|
+
"""
|
|
10
|
+
| foo | bar |
|
|
11
|
+
"""
|
|
12
|
+
And a row model based on that gherkin
|
|
13
|
+
"""
|
|
14
|
+
@model = CukeModeler::Row.new(<source_text>)
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Scenario: Modeling a rows's cells
|
|
19
|
+
When the rows's cells are requested
|
|
20
|
+
"""
|
|
21
|
+
@model.cells
|
|
22
|
+
"""
|
|
23
|
+
Then the model returns models for the following cells:
|
|
24
|
+
| foo |
|
|
25
|
+
| bar |
|
|
26
|
+
|
|
27
|
+
Scenario: Modeling a row's source line
|
|
28
|
+
Given the following gherkin:
|
|
29
|
+
"""
|
|
30
|
+
Feature:
|
|
31
|
+
|
|
32
|
+
Scenario:
|
|
33
|
+
* a step
|
|
34
|
+
| foo |
|
|
35
|
+
"""
|
|
36
|
+
And a feature model based on that gherkin
|
|
37
|
+
"""
|
|
38
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
|
39
|
+
"""
|
|
40
|
+
And the row model inside of that feature model
|
|
41
|
+
"""
|
|
42
|
+
@model = @model.tests.first.steps.first.block.rows.first
|
|
43
|
+
"""
|
|
44
|
+
When the rows's source line is requested
|
|
45
|
+
"""
|
|
46
|
+
@model.source_line
|
|
47
|
+
"""
|
|
48
|
+
Then the model returns "5"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Feature: Row output
|
|
2
|
+
|
|
3
|
+
A row model's string output is a Gherkin representation of itself.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Scenario: Outputting a row model
|
|
7
|
+
Given the following gherkin:
|
|
8
|
+
"""
|
|
9
|
+
|foo|bar|
|
|
10
|
+
"""
|
|
11
|
+
And a row model based on that gherkin
|
|
12
|
+
"""
|
|
13
|
+
@model = CukeModeler::Row.new(<source_text>)
|
|
14
|
+
"""
|
|
15
|
+
When the model is output as a string
|
|
16
|
+
"""
|
|
17
|
+
@model.to_s
|
|
18
|
+
"""
|
|
19
|
+
Then the following text is provided:
|
|
20
|
+
"""
|
|
21
|
+
| foo | bar |
|
|
22
|
+
"""
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
Feature: Scenario modeling
|
|
2
|
+
|
|
3
|
+
Scenario models represent a Scenario portion of a feature. They expose several attributes of the scenario
|
|
4
|
+
that they represent, as well as containing models for the steps and tags that are present in that scenario.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given the following gherkin:
|
|
9
|
+
"""
|
|
10
|
+
Scenario: example scenario
|
|
11
|
+
|
|
12
|
+
Some background description.
|
|
13
|
+
|
|
14
|
+
Some more.
|
|
15
|
+
Even more.
|
|
16
|
+
|
|
17
|
+
Given a setup step
|
|
18
|
+
When an action step
|
|
19
|
+
Then a verification step
|
|
20
|
+
"""
|
|
21
|
+
And a scenario model based on that gherkin
|
|
22
|
+
"""
|
|
23
|
+
@model = CukeModeler::Scenario.new(<source_text>)
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Scenario: Modeling a scenario's name
|
|
28
|
+
When the scenario's name is requested
|
|
29
|
+
"""
|
|
30
|
+
@model.name
|
|
31
|
+
"""
|
|
32
|
+
Then the model returns "example scenario"
|
|
33
|
+
|
|
34
|
+
Scenario: Modeling a scenario's description
|
|
35
|
+
When the scenario's description is requested
|
|
36
|
+
"""
|
|
37
|
+
@model.description
|
|
38
|
+
"""
|
|
39
|
+
Then the model returns
|
|
40
|
+
"""
|
|
41
|
+
Some background description.
|
|
42
|
+
|
|
43
|
+
Some more.
|
|
44
|
+
Even more.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
Scenario: Modeling a scenario's steps
|
|
48
|
+
When the scenario's steps are requested
|
|
49
|
+
"""
|
|
50
|
+
@model.steps
|
|
51
|
+
"""
|
|
52
|
+
Then the model returns models for the following steps:
|
|
53
|
+
| a setup step |
|
|
54
|
+
| an action step |
|
|
55
|
+
| a verification step |
|
|
56
|
+
|
|
57
|
+
Scenario: Modeling a scenario's tags
|
|
58
|
+
Given the following gherkin:
|
|
59
|
+
"""
|
|
60
|
+
@feature_tag
|
|
61
|
+
Feature:
|
|
62
|
+
|
|
63
|
+
@scenario_tag_1
|
|
64
|
+
@scenario_tag_2
|
|
65
|
+
Scenario:
|
|
66
|
+
* a step
|
|
67
|
+
"""
|
|
68
|
+
And a feature model based on that gherkin
|
|
69
|
+
"""
|
|
70
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
|
71
|
+
"""
|
|
72
|
+
And the scenario model of that feature model
|
|
73
|
+
"""
|
|
74
|
+
@model = @model.scenarios.first
|
|
75
|
+
"""
|
|
76
|
+
When the scenario's tags are requested
|
|
77
|
+
"""
|
|
78
|
+
@model.tags
|
|
79
|
+
"""
|
|
80
|
+
Then the model returns models for the following tags:
|
|
81
|
+
| @scenario_tag_1 |
|
|
82
|
+
| @scenario_tag_2 |
|
|
83
|
+
When the scenario's inherited tags are requested
|
|
84
|
+
"""
|
|
85
|
+
@model.applied_tags
|
|
86
|
+
"""
|
|
87
|
+
Then the model returns models for the following tags:
|
|
88
|
+
| @feature_tag |
|
|
89
|
+
When all of the scenario's tags are requested
|
|
90
|
+
"""
|
|
91
|
+
@model.all_tags
|
|
92
|
+
"""
|
|
93
|
+
Then the model returns models for the following tags:
|
|
94
|
+
| @feature_tag |
|
|
95
|
+
| @scenario_tag_1 |
|
|
96
|
+
| @scenario_tag_2 |
|
|
97
|
+
|
|
98
|
+
Scenario: Modeling a scenario's source line
|
|
99
|
+
Given the following gherkin:
|
|
100
|
+
"""
|
|
101
|
+
Feature:
|
|
102
|
+
|
|
103
|
+
Scenario:
|
|
104
|
+
* a step
|
|
105
|
+
"""
|
|
106
|
+
And a feature model based on that gherkin
|
|
107
|
+
"""
|
|
108
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
|
109
|
+
"""
|
|
110
|
+
And the scenario model of that feature model
|
|
111
|
+
"""
|
|
112
|
+
@model = @model.scenarios.first
|
|
113
|
+
"""
|
|
114
|
+
When the scenario's source line is requested
|
|
115
|
+
"""
|
|
116
|
+
@model.source_line
|
|
117
|
+
"""
|
|
118
|
+
Then the model returns "3"
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Feature: Scenario output
|
|
2
|
+
|
|
3
|
+
A scenario model's string output is a Gherkin representation of itself.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Scenario: Outputting a scenario model
|
|
7
|
+
Given the following gherkin:
|
|
8
|
+
"""
|
|
9
|
+
@tag1@tag2
|
|
10
|
+
@tag3
|
|
11
|
+
Scenario: A scenario with everything that it could have
|
|
12
|
+
|
|
13
|
+
Including a description
|
|
14
|
+
and then some.
|
|
15
|
+
|
|
16
|
+
* a step
|
|
17
|
+
|value|
|
|
18
|
+
* another step
|
|
19
|
+
\"\"\"
|
|
20
|
+
some string
|
|
21
|
+
\"\"\"
|
|
22
|
+
"""
|
|
23
|
+
And a scenario model based on that gherkin
|
|
24
|
+
"""
|
|
25
|
+
@model = CukeModeler::Scenario.new(<source_text>)
|
|
26
|
+
"""
|
|
27
|
+
When the model is output as a string
|
|
28
|
+
"""
|
|
29
|
+
@model.to_s
|
|
30
|
+
"""
|
|
31
|
+
Then the following text is provided:
|
|
32
|
+
"""
|
|
33
|
+
@tag1 @tag2 @tag3
|
|
34
|
+
Scenario: A scenario with everything that it could have
|
|
35
|
+
|
|
36
|
+
Including a description
|
|
37
|
+
and then some.
|
|
38
|
+
|
|
39
|
+
* a step
|
|
40
|
+
| value |
|
|
41
|
+
* another step
|
|
42
|
+
\"\"\"
|
|
43
|
+
some string
|
|
44
|
+
\"\"\"
|
|
45
|
+
"""
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Feature: Step modeling
|
|
2
|
+
|
|
3
|
+
Step models represent represent the a step in a scenario, outline, or background. They expose several attributes
|
|
4
|
+
of the step that they represent.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given the following gherkin:
|
|
9
|
+
"""
|
|
10
|
+
* a step
|
|
11
|
+
"""
|
|
12
|
+
And a step model based on that gherkin
|
|
13
|
+
"""
|
|
14
|
+
@model = CukeModeler::Step.new(<source_text>)
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Scenario: Modeling a step's keyword
|
|
19
|
+
When the step's keyword is requested
|
|
20
|
+
"""
|
|
21
|
+
@model.keyword
|
|
22
|
+
"""
|
|
23
|
+
Then the model returns "*"
|
|
24
|
+
|
|
25
|
+
Scenario: Modeling a step's base text
|
|
26
|
+
When the step's base text is requested
|
|
27
|
+
"""
|
|
28
|
+
@model.text
|
|
29
|
+
"""
|
|
30
|
+
Then the model returns "a step"
|
|
31
|
+
|
|
32
|
+
Scenario: Modeling a step's source line
|
|
33
|
+
Given the following gherkin:
|
|
34
|
+
"""
|
|
35
|
+
Feature:
|
|
36
|
+
|
|
37
|
+
Scenario:
|
|
38
|
+
* a step
|
|
39
|
+
"""
|
|
40
|
+
And a feature model based on that gherkin
|
|
41
|
+
"""
|
|
42
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
|
43
|
+
"""
|
|
44
|
+
And the step model inside of that feature model
|
|
45
|
+
"""
|
|
46
|
+
@model = @model.tests.first.steps.first
|
|
47
|
+
"""
|
|
48
|
+
When the step's source line is requested
|
|
49
|
+
"""
|
|
50
|
+
@model.source_line
|
|
51
|
+
"""
|
|
52
|
+
Then the model returns "4"
|
|
53
|
+
|
|
54
|
+
Scenario: Modeling a step's table
|
|
55
|
+
Given a step model based on the following gherkin:
|
|
56
|
+
"""
|
|
57
|
+
* a step
|
|
58
|
+
| value 1 |
|
|
59
|
+
| value 2 |
|
|
60
|
+
"""
|
|
61
|
+
When the step's table is requested
|
|
62
|
+
"""
|
|
63
|
+
@model.block
|
|
64
|
+
"""
|
|
65
|
+
Then the model returns a model for the following table:
|
|
66
|
+
| value 1 |
|
|
67
|
+
| value 2 |
|
|
68
|
+
|
|
69
|
+
Scenario: Modeling a step's doc string
|
|
70
|
+
Given a step model based on the following gherkin:
|
|
71
|
+
"""
|
|
72
|
+
* a step
|
|
73
|
+
\"\"\"
|
|
74
|
+
some text
|
|
75
|
+
\"\"\"
|
|
76
|
+
"""
|
|
77
|
+
When the step's doc string is requested
|
|
78
|
+
"""
|
|
79
|
+
@model.block
|
|
80
|
+
"""
|
|
81
|
+
Then the model returns a model for the following doc string:
|
|
82
|
+
"""
|
|
83
|
+
some text
|
|
84
|
+
"""
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Feature: Step output
|
|
2
|
+
|
|
3
|
+
A step model's string output is a Gherkin representation of itself.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Scenario: Outputting a step model
|
|
7
|
+
|
|
8
|
+
Note: Outputting a step that has a doc string is accomplished in the same manner
|
|
9
|
+
|
|
10
|
+
Given the following gherkin:
|
|
11
|
+
"""
|
|
12
|
+
* a step
|
|
13
|
+
|value1|
|
|
14
|
+
|value2|
|
|
15
|
+
"""
|
|
16
|
+
And a step model based on that gherkin
|
|
17
|
+
"""
|
|
18
|
+
@model = CukeModeler::Step.new(<source_text>)
|
|
19
|
+
"""
|
|
20
|
+
When the model is output as a string
|
|
21
|
+
"""
|
|
22
|
+
@model.to_s
|
|
23
|
+
"""
|
|
24
|
+
Then the following text is provided:
|
|
25
|
+
"""
|
|
26
|
+
* a step
|
|
27
|
+
| value1 |
|
|
28
|
+
| value2 |
|
|
29
|
+
"""
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
Feature: Table modeling
|
|
2
|
+
|
|
3
|
+
Table models represent represent the table argument to a step. They expose several attributes of the table
|
|
4
|
+
that they represent.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Background:
|
|
8
|
+
Given the following gherkin:
|
|
9
|
+
"""
|
|
10
|
+
| value 1 | value 2 |
|
|
11
|
+
| value 3 | value 4 |
|
|
12
|
+
"""
|
|
13
|
+
And a table model based on that gherkin
|
|
14
|
+
"""
|
|
15
|
+
@model = CukeModeler::Table.new(<source_text>)
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Scenario: Modeling a table's rows
|
|
20
|
+
When the table's rows are requested
|
|
21
|
+
"""
|
|
22
|
+
@model.rows
|
|
23
|
+
"""
|
|
24
|
+
Then the model returns models for the following rows:
|
|
25
|
+
| value 1 | value 2 |
|
|
26
|
+
| value 3 | value 4 |
|
|
27
|
+
|
|
28
|
+
Scenario: Modeling a table's source line
|
|
29
|
+
Given the following gherkin:
|
|
30
|
+
"""
|
|
31
|
+
Feature:
|
|
32
|
+
|
|
33
|
+
Scenario:
|
|
34
|
+
* a step
|
|
35
|
+
| value 1 |
|
|
36
|
+
| value 2 |
|
|
37
|
+
"""
|
|
38
|
+
And a feature model based on that gherkin
|
|
39
|
+
"""
|
|
40
|
+
@model = CukeModeler::Feature.new(<source_text>)
|
|
41
|
+
"""
|
|
42
|
+
And the table model inside of that feature model
|
|
43
|
+
"""
|
|
44
|
+
@model = @model.tests.first.steps.first.block
|
|
45
|
+
"""
|
|
46
|
+
When the table's source line is requested
|
|
47
|
+
"""
|
|
48
|
+
@model.source_line
|
|
49
|
+
"""
|
|
50
|
+
Then the model returns "5"
|