toms blog - Rails 3 in Action – Undefined Step

Rails 3 in Action – Undefined Step Sonntag, 8. Januar 12

Hey, I´m writing this article in english this time, because I think it may also be useful for some people not familiar with the german language :)

Currently I´m playing around with the really good book “Rails 3 in Action” from Manning. It provides a good and easy to understand introduction in TDD and BDD. Unfortunately it refers to an older version of Cucumber (< 1.1), where a file called “web_steps.rb” was created. If you are trying to follow the books steps of chapter 3.2 (First steps), you will stumble upon the problem, that the current version of Cucumber doesn´t create this file.

Instead the rake cucumber:ok command raises following error:

Undefined step: "I am on the homepage"

The reason why web_steps.rb isn´t there anymore is described at large in this article.  I suggest you, to read this article and keep the thoughts made by the author in mind, when you want to build scenarios in the feature. However, to be able to follow this book, you can do it like I did:

Create a file called “project_steps.rb” under /features/step_defintions/ in your rails folder and add following code:


Given /^I am on the homepage$/ do
visit "/"
end

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

When /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
fill_in field, :with => value
end

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

Then /^I should see "([^"]*)"$/ do |content|
page.should have_content(content)
end

Then /^I should be on the project page for "([^"]*)"$/ do |name|
project_path(Project.find_by_name!(name))
end

With this file in place, you cal run rake cucumber:ok again and follow the steps as described in the book (at least for this chapter)

The second way to you can go is to install this additional gem: https://github.com/cucumber/cucumber-rails-training-wheels which seems to do nothing more, than to add the missing web_steps.rb. I´ve not tested it, though.

Hope you´re now back on the road rails again…

2 Antworten zu “Rails 3 in Action – Undefined Step”

  1. Sanil Paul (Sonntag, 8.01.12 15:16 Uhr)

    Thank you. I was really stuck and thought someone else might have encountered the same issue. It helped me to march forward.

  2. Ryan Bigg (Dienstag, 15.05.12 09:28 Uhr)

    Hey there,

    This will be fixed in the second edition, as it switches from Cucumber to Capybara, as that is the more preferred solution now.

    Thanks for doing the writeup about it and letting people know about it! The second edition MEAP should be out in a couple of weeks’ time.

    Thanks,
    Ryan Bigg

Hinterlasse eine Antwort