1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
Feature: Nested Steps
Background:
Given a scenario with a step that looks like this:
"""gherkin
Given two turtles
"""
And a step definition that looks like this:
"""ruby
Given /a turtle/ do
puts "turtle!"
end
"""
Scenario: Use #steps to call several steps at once
Given a step definition that looks like this:
"""ruby
Given /two turtles/ do
steps %{
Given a turtle
And a turtle
}
end
"""
When I run the feature with the progress formatter
Then the output should contain:
"""
turtle!
turtle!
"""
Scenario: Use #step to call a single step
Given a step definition that looks like this:
"""ruby
Given /two turtles/ do
step "a turtle"
step "a turtle"
end
"""
When I run the feature with the progress formatter
Then the output should contain:
"""
turtle!
turtle!
"""
Scenario: Use #steps to call a table
Given a step definition that looks like this:
"""ruby
Given /turtles:/ do |table|
table.hashes.each do |row|
puts row[:name]
end
end
"""
And a step definition that looks like this:
"""ruby
Given /two turtles/ do
steps %{
Given turtles:
| name |
| Sturm |
| Liouville |
}
end
"""
When I run the feature with the progress formatter
Then the output should contain:
"""
Sturm
Liouville
"""
Scenario: Use #steps to call a multi-line string
Given a step definition that looks like this:
"""ruby
Given /two turtles/ do
steps %Q{
Given turtles:
\"\"\"
Sturm
Liouville
\"\"\"
}
end
"""
And a step definition that looks like this:
"""ruby
Given /turtles:/ do |string|
puts string
end
"""
When I run the feature with the progress formatter
Then the output should contain:
"""
Sturm
Liouville
"""
@spawn
Scenario: Backtrace doesn't skip nested steps
Given a step definition that looks like this:
"""ruby
Given /two turtles/ do
step "I have a couple turtles"
end
When /I have a couple turtles/ do
raise 'error'
end
"""
When I run the feature with the progress formatter
Then it should fail with:
"""
error (RuntimeError)
./features/step_definitions/test_steps2.rb:6:in `/I have a couple turtles/'
./features/step_definitions/test_steps2.rb:2:in `/two turtles/'
features/test_feature_1.feature:3:in `Given two turtles'
Failing Scenarios:
cucumber features/test_feature_1.feature:2 # Scenario: Test Scenario 1
1 scenario (1 failed)
1 step (1 failed)
"""
|