Thursday, October 29, 2009

Cucumber and Ruby on Rails (Part 7) My learning materials

Now lets see a scenario to go through the links and how the cucumber deals with that scenario.
Before write the scenario lets look at the scree shots and what could be the scenario.

1 Step:- I am on the “List of products” page and I can see
Titled = Ruby on Rails
Description = Model View Architecture
Image url = ror.jpg
Price = 22


2 Step:- Now I click on “New Product” link.


3 Step:- Now click on “Back” link again. Then I am again on “List of Products”.


4 Step:- Now click on “Show” link and then I can see



5 Step: like wise we can navigate through the links

Now lets see how this scenario can be written. Before that look at these step definitions. You can find them in webrat_steps.rb file.

When /^I press "([^\"]*)"$/ do |button|
click_button(button)
end

This can be used for when we click on button

When /^I follow "([^\"]*)"$/ do |link|
click_link(link)
end

When /^I follow "([^\"]*)" within "([^\"]*)"$/ do |link, parent|

click_link_within(parent, link)

end

These two can be used when we navigate through the links.
Now lets see the scenario.

Scenario: Go Through Links
Given I have products titled Ruby on Rails, description Model View Architecture, Image url ror.jpg, Price 22
When I go to the list of Products
Then I should see "Ruby on Rails"
And I should see "Model View Architecture"
And I should see "ror.jpg"
And I should see "22"
When I follow "New Product"
And I follow "Back"
And I am on the list of Products
Then I should see "Ruby on Rails"
And I should see "Model View Architecture"
And I should see "ror.jpg"
And I should see "22"
When I follow "Show"
Then I should see "Ruby on Rails"
And I should see "Model View Architecture"
And I should see "ror.jpg"
And I should see "22"
When I follow "Back"
And I am on the list of Products
Then I should see "Ruby on Rails"
And I should see "Model View Architecture"
And I should see "ror.jpg"
And I should see "22"
When I follow "Edit"
And I follow "Back"
And I am on the list of Products
Then I should see "Java"
And I should see "Platform Independent"
And I should see "java.jpg"
And I should see "20"

save this scenario as go_through_links.feature and run the cucumber features/go_through_links.feature

Then you can see the following screen shot.


Why this scenario failed. Look at these steps.

When I follow "Edit"
And I follow "Back"
And I am on the list of Products
Then I should see "Java"
And I should see "Platform Independent"
And I should see "java.jpg"
And I should see "20"

These steps are wrong. They should be as follows.

When I follow "Edit"
And I follow "Back"
And I am on the list of Products
Then I should see "Ruby on Rails"
And I should see "Model View Architecture"
And I should see "ror.jpg"
And I should see "22"

Edit the feature file and run again cucumber features/go_through_links.feature. Now you can get the all the steps are passed massage.


This is how the cucumber work with the navigation scenario.

No comments: