Given/When/Then blocks on Cucumber


#1

Hello guys,

I’ve been looking at Pyccuracy and found the “Given/Then/When” blocks
to be very interesting and easier to understand and write, specially
when writting scenarios with more than one of those. An example can be
found here: http://www.pyccuracy.org/getting_started_3.html

Here’s how they do:

Scenario 1 - Searching for Hello World
Given
I go to “http://www.google.com
When
I fill “q” textbox with “Hello World”
And I click “btnG” button
Then
I see “Hello World - Google Search” title

And here’s how we would do with Cucumber

Scenario: Searching for Hello World
Given I go to “http://www.google.com
When I fill “q” textbox with “Hello World”
When I click “btnG” button
Then I see “Hello World - Google Search” title

With cucumber we need to repeat the When’s, Then’s and Given’s if
there’s more than one, woudn’t it be nice to avoid this?

Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) |
http://codeshooter.wordpress.com/ (en)


#2

Maurício Linhares wrote:

Given
Given I go to “http://www.google.com
When I fill “q” textbox with “Hello World”
When I click “btnG” button
Then I see “Hello World - Google Search” title

With cucumber we need to repeat the When’s, Then’s and Given’s if
there’s more than one, woudn’t it be nice to avoid this?

Yep, and you can… (since Cucumber started you’ve been able to do this)

You can use “And” and “But”:

Scenario: Searching for Hello World
Given I go to “http://www.google.com
When I fill “q” textbox with “Hello World”
And I click “btnG” button
Then I see “Hello World - Google Search” title
But I should not see “Whatever”

-Ben


#3

Maurício Linhares wrote:

Given
Given I go to “http://www.google.com
http://codeshooter.wordpress.com/ (en)


rspec-users mailing list
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users

BTW, please use the new Cucumber ML for cucumber related posts:

http://groups.google.com/group/cukes

-Ben


#4

Maurício Linhares wrote:

Given
Given I go to “http://www.google.com
When I fill “q” textbox with “Hello World”
When I click “btnG” button
Then I see “Hello World - Google Search” title

With cucumber we need to repeat the When’s, Then’s and Given’s if
there’s more than one, woudn’t it be nice to avoid this?

We don’t have to repeat ourselves in Cucumber:

Scenario: Searching for Hello World
Given I go to “http://www.google.com
When I fill “q” textbox with “Hello World”
And I click “btnG” button
Then I see “Hello World - Google Search” title

While the block idea is interesting the key thing for me is the scenario
reads like prose.

Also we have moved Cuke to its own mailing list, so please send any
Cucumber related questions there.

http://groups.google.com/group/cukes?pli=1

Thanks!

Joseph W.
http://blog.josephwilk.net