macros4cuke 0.4.07 → 0.4.08

Sign up to get free protection for your applications and to get access to all the features.
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
- """