macros4cuke 0.4.07 → 0.4.08

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDJhOGYwNDM3NTRiYjMwZGFlZDA4MmUxMGRlMzM2YjUzODM2NDM3ZA==
4
+ MjExN2JjMDk1OTE2MDAyODlmNzFlYjU5MjBhNzBjM2U3MTYwNjA1MA==
5
5
  data.tar.gz: !binary |-
6
- ODU0NDllNDUxM2I5NDI4OTdhYWY2MDJmOTBiNjY5ODZhNDNlYWMyNg==
6
+ M2NhYzE4ZjkxOGExNGZkODNjYTI0YWEyYTA0MzJiY2I4MzkwNzdjOA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- M2NkODM4ZDRmNzA0YWViZjAwZTExM2M3M2I0YThmYTcxY2E1YThlYzYzMmUz
10
- YzE0OGFiNzE2NWRiMmUwMWFhNzQ5MmY5Y2E4YTNkY2M4MzU3ODNhMDNkNjUy
11
- ZWI4ZjdiOTU2OTVmZGVjOTIxYzU2ZmQ5ZmE3NTg4MWM0N2IzMTk=
9
+ MDliNGIyNDBmZjhlOGNjMjg2ZjRhNGRiZWY0NjM2ZTc2N2IzMzUxNTg1Mzgz
10
+ NGE3OTVkMTM3YzMyMTc1MTQwODk3YjhjMzdhOWQzMmNjNDE5MjE1MjIzOGEx
11
+ NmY0NjIwM2ExMzBkOTBmNDg1YWMyYTU3YmM1ZWNjOGYwNDYxMjQ=
12
12
  data.tar.gz: !binary |-
13
- YjZmMmZhOGI0MjdhMjFkM2QyYmYwMmZiNDE3OWRjOGE0YzQ1ODAyNmNiZTkz
14
- ZTRhODk4MjJiNzE4MDkyZmU0ZmY2ZTZhZmZmYjc2M2RkZjYxYjcxMGU2MWRi
15
- NDc1NzU0M2Q0NGIxOGJmZTBhMjVjMmFkYzIzNjBmY2Y1YzlhMjU=
13
+ M2QwZjk4ZTA2YTEyYWQxYjNhN2RlNDBkY2M5ZmI0MTM3ODA1YTFkMDQ1MDZl
14
+ M2UxNTllM2E1MWUyNTBlYjhhMjg0MzFiNDQ1NTExYmQ2N2NhZjdmZTc1MGFj
15
+ YmNhNzQyMzYyMDMwZTE2Y2Y5ZWQwNmE0ZjJiMThmMzUyMjk4MGI=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ### 0.4.08 / 2014-02-08
2
+ * [NEW] Added some tutorial material in [Relish] (https://www.relishapp.com/famished-tiger/macros4cuke/docs)
3
+ * [CHANGE] `features` dir and feature files re-designed for publishing on Relish website.
4
+ * [CHANGE] File `macros4cuke.gemspec`: RDOC is configured to use UTF-8 charset
5
+ * [CHANGE] File `README.md`: Updated with links to Relish website.
6
+
1
7
  ### 0.4.07 / 2014-02-04
2
8
  * [FIX] Addressed Rubocop 0.18 complains string concatenation over multiple lines.
3
9
  * [CHANGE] File `formatting-service_spec.rb`: Replaced string operators + by newline escapes
data/README.md CHANGED
@@ -7,11 +7,12 @@ Macros4Cuke
7
7
 
8
8
  _Add macros to your Cucumber scenarios._
9
9
  [Homepage](https://github.com/famished-tiger/Macros4Cuke)
10
+ [Documentation] (https://www.relishapp.com/famished-tiger/macros4cuke/docs)
10
11
 
11
- __Macros4Cuke__ is a lightweight library that adds a macro facility your Cucumber scenarios.
12
- With it, you can create any new step that replaces a sequence of substeps.
12
+ __Macros4Cuke__ is a Cucumber extension that adds a macro facility for your Cucumber scenarios.
13
+ With it, you can create any new step that replaces a sequence of sub-steps.
13
14
  All this can be done directly in your feature files without programming step definitions.
14
-
15
+
15
16
  ### Highlights ###
16
17
  * Works with out-of-the-box Cucumber
17
18
  * Simple installation and setup (no programming required),
@@ -22,6 +23,7 @@ __Macros4Cuke__ is a lightweight library that adds a macro facility your Cucumbe
22
23
  * Domain neutral: applicable to any kind of application that can be driven with Cucumber,
23
24
  * A group of sub-steps can be made conditional.
24
25
 
26
+
25
27
  Since version 0.4.00, it is also possible to [list all the encountered macro definitions](#listing-all-the-macro-definitions).
26
28
 
27
29
  ## A quick example ##
@@ -437,6 +439,15 @@ text in an entry field may be noticeably different than skipping that same entry
437
439
  Think of specific UI-events that can trigger some special system response.
438
440
 
439
441
 
442
+ ## More documentation ##
443
+ More samples and documentation can be found in the `features` folder. It contains
444
+ many feature files and README.md -in Markdown format-.
445
+ Most of the material has been rewritten and adapted so that it can be consulted at the Relish website.
446
+ Relish -The living document- website is great to turn your feature files into an attractive documentation.
447
+
448
+ [Macros4Cuke @ Relish] (https://www.relishapp.com/famished-tiger/macros4cuke/docs)
449
+
450
+
440
451
  ## Listing all the macro definitions ##
441
452
  When one begins to write macros spread over a large collection of feature files
442
453
  it becomes interesting to have an overview, a list of all macro ever defined.
@@ -526,4 +537,4 @@ Macros with Cucumber is a hot topic, so it is good to know what other people say
526
537
 
527
538
  Copyright
528
539
  ---------
529
- Copyright (c) 2013, Dimitri Geshef. Macros4Cuke is released under the MIT License see [LICENSE.txt](https://github.com/famished-tiger/Macros4Cuke/blob/master/LICENSE.txt) for details.
540
+ Copyright (c) 2014, Dimitri Geshef. Macros4Cuke is released under the MIT License see [LICENSE.txt](https://github.com/famished-tiger/Macros4Cuke/blob/master/LICENSE.txt) for details.
@@ -0,0 +1,78 @@
1
+ # A first example #
2
+ Let's assume that our friend Joe wants to test a basic calculator.
3
+ Joe uses Cucumber with a generic library of user interface steps that
4
+ allows him to perform user actions like:
5
+ - Filling a text field,
6
+ - Pressing on a button,
7
+ - Clicking on a link,...
8
+
9
+
10
+ For instance, the Cucumber steps necessary to calculate the sum of 8 + 3 are:
11
+ ```cucumber
12
+ When I type 8
13
+ And I click Enter
14
+ And I type 3
15
+ And I click Enter
16
+ And I click Add
17
+ Then I should see 11
18
+ ```
19
+
20
+
21
+ What strikes Joe is that some step sequences are repeating again and again in
22
+ many of his scenarios. As an example Joe would like to replace the scenario fragment:
23
+ ```cucumber
24
+ When I type 8
25
+ And I click Enter
26
+ ```
27
+
28
+ by something shorter like:
29
+ ```cucumber
30
+ When I enter the number 8
31
+ ```
32
+
33
+ For a programmer familiar with Cucumber, Joe's wish is a piece of a cake to achieve.
34
+ Alas, while Joe is a terrific tester he has little programming experience. Accordingly,
35
+ he doesn't feel confident enough to program step definitions. Or maybe he isn't knowledgeable
36
+ in the API used by the calculator...
37
+
38
+ Luckily, Joe is rescued from despair and when he reads in the next paragraph how
39
+ to get rid of the infamous scenario fragment.
40
+
41
+
42
+ With __Macros4Cuke__, all Joe has to do to create his wished new macro-step is:
43
+
44
+ ```cucumber
45
+ ...
46
+ Given I define the step "When I [enter the number <value>]" to mean:
47
+ """
48
+ When I type <value>
49
+ And I click Enter
50
+ """
51
+ ...
52
+ ```
53
+
54
+ Once this is done, then the original scenario above can be rewritten as follows:
55
+ ```cucumber
56
+ When I [enter the number "8"]
57
+ And I [enter the number "3"]
58
+ And I click Add
59
+ Then I should see 11
60
+ ```
61
+
62
+ No programming was required! The only price to pay are the step syntax conventions imposed by __Macros4Cuke__ (e.g. the square brackets and the quotes).
63
+ But this is really bargain compared to the added convenience.
64
+
65
+ With a little imagination, Joe could even reduce the last scenario to something like:
66
+ ```cucumber
67
+ When I [calculate the sum of "8" and "3"]
68
+ Then I should see 11
69
+ ```
70
+
71
+ See how the last example looks more natural and readable for a genuine calculator user.
72
+
73
+ Are you interested to reduce the length of your scenarios or do you want to use higher-level
74
+ steps that conceal the boring details without fiddling with step definition programming?...
75
+
76
+ Then give __Macros4Cuke__ a try...
77
+
78
+
@@ -1,16 +1,18 @@
1
1
  # File: demo01.feature
2
2
 
3
- Feature: Show the use of a basic macro
3
+ Feature: Define and use a basic macro-step
4
4
  As a Cuke user
5
- So that I enjoy writing scenario.
5
+ I want to create macro-steps that replace repeating lower-level steps
6
+ So that I can write shorter and more readable scenarios.
6
7
 
7
8
 
8
- Scenario: Definition of a simple macro-step
9
+ Scenario: Defining a simple macro-step
9
10
  # The next step creates a macro(-step)
10
11
  # The syntax of the new macro-step is specified between double quotes.
11
12
  # The steps to execute when the macro is used/invoked are listed in the multiline triple quotes arguments.
12
13
  Given I define the step "* I [log in]" to mean:
13
14
  """
15
+ # Here follows the steps to execute when this macro is called
14
16
  Given I landed in the homepage
15
17
  When I click "Sign in"
16
18
  And I fill in "Username" with "johndoe"
@@ -0,0 +1,47 @@
1
+ # Passing data values to a macro-step #
2
+
3
+ Macro-steps as defined in the _Basics_ section are pretty limited.
4
+
5
+ Remember Joe and his calculator?...
6
+ Suppose that Joe created a macro-step as follows:
7
+ ```cucumber
8
+ ...
9
+ Given I define the step "When I [enter the number 8]" to mean:
10
+ """
11
+ When I type 8
12
+ And I click Enter
13
+ """
14
+ ...
15
+ ```
16
+
17
+ While being a perfectly valid macro, it is almost useless since it will always enter the same digit 8.
18
+
19
+ What Joe really needs is a macro-step that allows him to enter any number.
20
+ His wish, in turn, implies that the previous macro-step should accept one parameter value: the number to enter.
21
+
22
+ Here is how Joe might proceed:
23
+ ```cucumber
24
+ ...
25
+ Given I define the step "When I [enter the number <some_number>]" to mean:
26
+ """
27
+ When I type <some_number>
28
+ And I click Enter
29
+ """
30
+ ...
31
+ ```
32
+
33
+ And here is how he can use the last macro to enter the value 2:
34
+
35
+ ```cucumber
36
+ ...
37
+ When I [enter the number "2"]
38
+ ...
39
+ ```
40
+
41
+ ## Rules of the game ##
42
+ When a macro-step is required to take one or more values, then:
43
+
44
+ 1. Place in the step being defined the name of an argument between chevrons < ... >.
45
+ 2. When the macro is used in a scenario, place the value of the corresponding argument between double quotes "...".
46
+
47
+
@@ -0,0 +1,51 @@
1
+ # File: demo02.feature
2
+
3
+ Feature: Define and use a macro taking one argument
4
+ As a Cuke user
5
+ I want to pass data to macro-steps
6
+ So that I can use them in more varied situations.
7
+
8
+
9
+
10
+ Scenario: Defining a macro-step with one argument (userid)
11
+ # The next step creates a macro(-step)
12
+ # The syntax of the new macro-step to create is specified between the double quotes.
13
+ # The steps to execute when the macro is used/invoked are listed in the multiline triple quotes arguments.
14
+ # The macro argument is put between chevrons <...>.
15
+ Given I define the step "* I [log in as <userid>]" to mean:
16
+ """
17
+ Given I landed in the homepage
18
+ When I click "Sign in"
19
+ # The next step uses the macro-step argument <userid>
20
+ And I fill in "Username" with "<userid>"
21
+ And I fill in "Password" with "unguessable"
22
+ And I click "Submit"
23
+ """
24
+
25
+ Scenario: Use the macro created above pass it a user id
26
+ # Here the macro is invoked. Actual value for the argument is put between double quotes.
27
+ When I [log in as "guest"]
28
+
29
+ # The next step verifies that the steps from the macro were effectively executed.
30
+ Then I expect the following step trace:
31
+ """
32
+ Invoked step: ... I landed in the homepage
33
+ Invoked step: ... I click "Sign in"
34
+ Invoked step: ... I fill in "Username" with "guest"
35
+ Invoked step: ... I fill in "Password" with "unguessable"
36
+ Invoked step: ... I click "Submit"
37
+ """
38
+
39
+
40
+ Scenario: Use the macro with another user id
41
+ When I [log in as "me-again"]
42
+
43
+ # The next step verifies that the steps from the macro were effectively executed.
44
+ Then I expect the following step trace:
45
+ """
46
+ Invoked step: ... I landed in the homepage
47
+ Invoked step: ... I click "Sign in"
48
+ Invoked step: ... I fill in "Username" with "me-again"
49
+ Invoked step: ... I fill in "Password" with "unguessable"
50
+ Invoked step: ... I click "Submit"
51
+ """
@@ -0,0 +1,35 @@
1
+ # File: demo03.feature
2
+
3
+ Feature: Define and use a macro taking several arguments
4
+ As a Cuke user
5
+ I want versatile macro-steps that accept more than one data argument
6
+ So that I can use them in varied situations.
7
+
8
+
9
+ Scenario: Defining a macro with multiple arguments
10
+ # The next step creates a macro(-step)double quotes.
11
+ # The steps to execute when the macro is used/invoked are listed in the multiline triple quotes arguments.
12
+ # The macro-step arguments are put between chevrons <...>.
13
+ Given I define the step "* I [enter my userid <userid> and password <password>]" to mean:
14
+ """
15
+ Given I landed in the homepage
16
+ When I click "Sign in"
17
+ And I fill in "Username" with "<userid>"
18
+ And I fill in "Password" with "<password>"
19
+ And I click "Submit"
20
+ """
21
+
22
+ Scenario: Using the macro with multiple arguments
23
+ # Here the macro is invoked. Actual value for the argument is put between double quotes.
24
+ When I [enter my userid "jdoe" and password "cosmic"]
25
+
26
+ # The next step verifies that the steps from the macro were effectively executed.
27
+ Then I expect the following step trace:
28
+ """
29
+ Invoked step: ... I landed in the homepage
30
+ Invoked step: ... I click "Sign in"
31
+ Invoked step: ... I fill in "Username" with "jdoe"
32
+ Invoked step: ... I fill in "Password" with "cosmic"
33
+ Invoked step: ... I click "Submit"
34
+ """
35
+
@@ -0,0 +1,88 @@
1
+ # Passing values to a macro-step through a table #
2
+
3
+ ## Learned so far ##
4
+
5
+ We discovered in the previous sections how to:
6
+ - Create a macro-step, and
7
+ - Pass data values to it.
8
+
9
+ As a further, example, here is the of a macro-step that takes three arguments such as:
10
+ ```cucumber
11
+ Given I define the step "When I [fly from <origin> to <destination> via <stopover>]" to mean:
12
+ """
13
+ When I take-off from <origin>
14
+ And I land in <stopover>
15
+ And I take-off from <stopover>
16
+ And I land in <destination>
17
+ """
18
+ ```
19
+
20
+ Our macro-step can be used in a scenario like this:
21
+
22
+ ```cucumber
23
+ ...
24
+ When I [fly from "Copenhagen" to "Milan" via "Paris"]
25
+ ...
26
+ ```
27
+
28
+ The text between double quotes, such as "Milan" are data values that the macro
29
+ will use when it executes its own sub-steps.
30
+
31
+ ## Using a table to pass data to a macro-step ##
32
+
33
+ While the use of macro-steps parameters is rather straightforward, it is however not always
34
+ very practical in situations when:
35
+ - A lot of arguments (say, more than 4) must be passed; or,
36
+ - Some arguments take long text values.
37
+
38
+ In these cases, with the approach described above we end up with steps that are
39
+ very long and hard to follow.
40
+
41
+ Therefore, __Macros4Cuke__ provides an alternative step syntax that allows you to pass
42
+ data values through a table.
43
+
44
+ The syntax for the macro definition is almost the same as above
45
+
46
+ ```cucumber
47
+ Given I define the step "When I [fly to <destination>]:" to mean:
48
+ """
49
+ When I take-off from <from>
50
+ And I land in <via>
51
+ And I take-off from <via>
52
+ And I land in <destination>
53
+ """
54
+ ```
55
+
56
+ Did you spot the key difference? There is a colon ':' character right after the closing bracket ']'.
57
+ It is this colon character that tells __Macros4Cuke__ that some arguments will be passed via a table.
58
+ Also some argument names were changed in order to make the syntax of a call to the macro-step more natural.
59
+
60
+ The syntax to call the macro with a table of arguments is as follows:
61
+ ```cucumber
62
+ When I [fly to "Milan"]:
63
+ |from |Copenhague|
64
+ |via |Paris |
65
+ ```
66
+
67
+ There are three argument values. The first one "Milan" is passed directly in the step sentence.
68
+ The two others are passed via a table.
69
+
70
+ ## Rules of the game ##
71
+ Here are the conventions to apply when a macro-step is required to take values via a table.
72
+ In the macro definition:
73
+ 1. Add a colon ':' just after the closing square bracket.
74
+ 2. You are allowed to pass also arguments in the step sentence.
75
+
76
+ When calling the macro:
77
+ 3. The table used to pass arguments must have exactly two columns.
78
+ 4. The first column contains the argument names.
79
+ 5. The second column contains the argument values.
80
+ 6. A row consists of a pair argument name - its value
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
@@ -1,8 +1,9 @@
1
1
  # File: demo04.feature
2
2
 
3
- Feature: Show the use of a macro with multiple arguments in a table
3
+ Feature: Define and use a macro with arguments in a table
4
4
  As a Cuke user
5
- So that I enjoy writing scenario.
5
+ I want to pass many arguments to a macro-step
6
+ So that I can use flexible and readable macros.
6
7
 
7
8
 
8
9
  Scenario: Defining a macro to be used with multiple arguments in a table
@@ -19,10 +20,10 @@ Scenario: Defining a macro to be used with multiple arguments in a table
19
20
  And I click "Submit"
20
21
  """
21
22
 
22
- Scenario: Let's use the macro we created above
23
+ Scenario: Using the macro we created above
23
24
  # Here the macro is invoked. Actual value for the argument are passed in a table argument.
24
25
  When I [enter my credentials as]:
25
- |userid|guest|
26
+ |userid |guest |
26
27
  |password|unguessable|
27
28
 
28
29
  # The next step verifies that the steps from the macro were effectively executed.
@@ -1,8 +1,9 @@
1
1
  # File: demo05.feature
2
2
 
3
- Feature: Show the use of a macro with multiple arguments in a table
3
+ Feature: Yet another example of: passing a Cucumber table into a macro-step
4
4
  As a Cuke user
5
- So that I enjoy writing scenario.
5
+ I want to pass many arguments to a macro-step
6
+ So that I can use flexible and readable macros.
6
7
 
7
8
 
8
9
  Scenario: Defining a macro to be used with multiple arguments in a table
@@ -18,14 +19,14 @@ Scenario: Defining a macro to be used with multiple arguments in a table
18
19
  And I click "Save"
19
20
  """
20
21
 
21
- Scenario: Let's use the macro we created above
22
+ Scenario: Using the macro we created above
22
23
  # Here the macro is invoked. Actual value for the argument are passed in a table argument.
23
24
  When I [enter my profile as]:
24
25
  |location|Nowhere-City|
25
- |email|nobody@example.com|
26
- |comment|First comment line|
27
- |comment|Second comment line|
28
- |comment|Third comment line|
26
+ |email |nobody@example.com |
27
+ |comment |First comment line |
28
+ |comment |Second comment line|
29
+ |comment |Third comment line |
29
30
 
30
31
  # The next step verifies that the steps from the macro were effectively executed.
31
32
  Then I expect the following step trace:
@@ -0,0 +1,29 @@
1
+ # File: demo07.feature
2
+
3
+ Feature: Insert a call to existing macro-step inside a new macro
4
+ As a Cuke user
5
+ I want to be able to use a macro-step inside higher-level macro-steps
6
+ So that I can use a macro-step to execute complex step sequences
7
+
8
+
9
+ Scenario: Create a macro that uses another, existing, macro (YES, it's possible!)
10
+ Given I define the step "* I [enter my credentials]" to mean:
11
+ """
12
+ # The next step invokes a macro-step defined elsewhere
13
+ When I [enter my userid "guest" and password "unguessable"]
14
+ """
15
+
16
+ Scenario: Invoking the coarse-grained macro
17
+
18
+ # Invoking our lastly-created macro
19
+ When I [enter my credentials]
20
+
21
+ # Check that the nested macro still works
22
+ Then I expect the following step trace:
23
+ """
24
+ Invoked step: ... I landed in the homepage
25
+ Invoked step: ... I click "Sign in"
26
+ Invoked step: ... I fill in "Username" with "guest"
27
+ Invoked step: ... I fill in "Password" with "unguessable"
28
+ Invoked step: ... I click "Submit"
29
+ """
@@ -1,4 +1,4 @@
1
- # File: demo07.feature
1
+ # File: demo08.feature
2
2
 
3
3
  Feature: Save all encountered macro-step definitions in a single file
4
4
  As a prolific macro-step writer
@@ -0,0 +1,20 @@
1
+ __Macros4Cuke__ is a Cucumber extension that allows you create and use new Cucumber steps without programming.
2
+
3
+ With it, your scenarios will:
4
+ - become shorter since a macro-step can replace a bunch of sub-steps,
5
+ - be more expressive by hiding low-level and boring details inside higher-level macro-steps,
6
+ - be more flexible thanks to conditional steps you can put in a macro-step.
7
+
8
+
9
+ ## The project
10
+
11
+ [Get the gem](https://rubygems.org/gems/macros4cuke)
12
+ [Source on GitHub](https://github.com/famished-tiger/Macros4Cuke)
13
+
14
+ ## Issues
15
+
16
+ This documentation is work in progress. If you find it incomplete or confusing,
17
+ please [submit an issue](https://github.com/famished-tiger/Macros4Cuke/issues).
18
+
19
+
20
+
@@ -3,7 +3,7 @@
3
3
 
4
4
  module Macros4Cuke # Module used as a namespace
5
5
  # The version number of the gem.
6
- Version = '0.4.07'
6
+ Version = '0.4.08'
7
7
 
8
8
  # Brief description of the gem.
9
9
  Description = 'Macro-steps for Cucumber'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: macros4cuke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.07
4
+ version: 0.4.08
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitri Geshef
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-04 00:00:00.000000000 Z
11
+ date: 2014-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -131,13 +131,18 @@ files:
131
131
  - examples/i18n/fr/features/step_definitions/demo_steps.rb
132
132
  - examples/i18n/fr/features/step_definitions/use_macro_steps.rb
133
133
  - examples/i18n/fr/features/support/macro_support.rb
134
- - features/demo01.feature
135
- - features/demo02.feature
136
- - features/demo03.feature
137
- - features/demo04.feature
138
- - features/demo05.feature
139
- - features/demo06.feature
140
- - features/demo07.feature
134
+ - features/1_Basics/demo01.feature
135
+ - features/2_Macros_with_arguments/demo02.feature
136
+ - features/2_Macros_with_arguments/demo03.feature
137
+ - features/3_Macros_with_table_arguments/demo04.feature
138
+ - features/3_Macros_with_table_arguments/demo05.feature
139
+ - features/4_Conditional_steps/demo06.feature
140
+ - features/5_Goodies/demo07.feature
141
+ - features/5_Goodies/demo08.feature
142
+ - features/1_Basics/README.md
143
+ - features/2_Macros_with_arguments/README.md
144
+ - features/3_Macros_with_table_arguments/README.md
145
+ - features/README.md
141
146
  - features/step_definitions/demo_steps.rb
142
147
  - features/step_definitions/use_macro_steps.rb
143
148
  - features/support/env.rb
@@ -169,7 +174,7 @@ post_install_message: ! '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169
174
 
170
175
  '
171
176
  rdoc_options:
172
- - --exclude="examples|features|spec"
177
+ - --charset=UTF-8 --exclude="examples|features|spec"
173
178
  require_paths:
174
179
  - lib
175
180
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -1,34 +0,0 @@
1
- # File: demo02.feature
2
-
3
- Feature: Show the use of a basic macro with one argument
4
- As a Cuke user
5
- So that I enjoy writing scenario.
6
-
7
-
8
- Scenario: Creating a basic scenario with one argument
9
- # The next step creates a macro(-step)
10
- # The syntax of the new macro-step is specified between the double quotes.
11
- # The steps to execute when the macro is used/invoked are listed in the multiline triple quotes arguments.
12
- # The macro argument is put between chevrons <...>.
13
- Given I define the step "* I [log in\[\] as <userid>]" to mean:
14
- """
15
- Given I landed in the homepage
16
- When I click "Sign in"
17
- And I fill in "Username" with "<userid>"
18
- And I fill in "Password" with "unguessable"
19
- And I click "Submit"
20
- """
21
-
22
- Scenario: Let's use the macro we created above
23
- # Here the macro is invoked. Actual value for the argument is put between double quotes.
24
- When I [log in\[\] as "guest"]
25
-
26
- # The next step verifies that the steps from the macro were effectively executed.
27
- Then I expect the following step trace:
28
- """
29
- Invoked step: ... I landed in the homepage
30
- Invoked step: ... I click "Sign in"
31
- Invoked step: ... I fill in "Username" with "guest"
32
- Invoked step: ... I fill in "Password" with "unguessable"
33
- Invoked step: ... I click "Submit"
34
- """
@@ -1,53 +0,0 @@
1
- # File: demo03.feature
2
-
3
- Feature: Show the use of a basic macro with multiple arguments
4
- As a Cuke user
5
- So that I enjoy writing scenario.
6
-
7
-
8
- Scenario: defining basic macro with multiple arguments
9
- # The next step creates a macro(-step)double quotes.
10
- # The steps to execute when the macro is used/invoked are listed in the multiline triple quotes arguments.
11
- # The macro-step arguments are put between chevrons <...>.
12
- Given I define the step "* I [enter my userid <userid> and password <password>]" to mean:
13
- """
14
- Given I landed in the homepage
15
- When I click "Sign in"
16
- And I fill in "Username" with "<userid>"
17
- And I fill in "Password" with "<password>"
18
- And I click "Submit"
19
- """
20
-
21
- Scenario: Let's use the macro we created above
22
- # Here the macro is invoked. Actual value for the argument is put between double quotes.
23
- When I [enter my userid "guest" and password "unguessable"]
24
-
25
- # The next step verifies that the steps from the macro were effectively executed.
26
- Then I expect the following step trace:
27
- """
28
- Invoked step: ... I landed in the homepage
29
- Invoked step: ... I click "Sign in"
30
- Invoked step: ... I fill in "Username" with "guest"
31
- Invoked step: ... I fill in "Password" with "unguessable"
32
- Invoked step: ... I click "Submit"
33
- """
34
-
35
- Scenario: A macro invoking another macro (YES, it's possible!)
36
- Given I define the step "* I [enter my credentials]" to mean:
37
- """
38
- # Notice that the next step is invoking the first macro above
39
- When I [enter my userid "guest" and password "unguessable"]
40
- """
41
-
42
- # Invoking our lastly-created macro
43
- When I [enter my credentials]
44
-
45
- # Check that the nested macro still works
46
- Then I expect the following step trace:
47
- """
48
- Invoked step: ... I landed in the homepage
49
- Invoked step: ... I click "Sign in"
50
- Invoked step: ... I fill in "Username" with "guest"
51
- Invoked step: ... I fill in "Password" with "unguessable"
52
- Invoked step: ... I click "Submit"
53
- """