Hi Everyone,
I’ve been working with cucumber trying to tests links using the scenario outline feature of cucumber. What I want to do is have it visit the starting_page and then click on the specified link. It should then check to make sure the title is correct on that page to ensure it’s on the expected page. Spent quite a bit of time googling without any luck.
Error I’ve been receiving:
expected css “title” to return something (RSpec::Expectations::ExpectationNotMetError) ./features/step_definitions/managing_pages_steps.rb:11:in `/^I should be able to change pages by clicking “([^”])" and the title is “([^”])"$/’
features/managing_pages.feature:12:in `Then I should be able to change pages by clicking "<link>" and the title is "<title>"'
My code is below: managing_pages.feature
Scenario Outline: As a user I need links in order to navigate the site
Given I am an anonymous user When I am at the "<starting_page>" page Then I should be able to change pages by clicking "<link>" and the title is "<title>" Scenarios: As a user that is not logged in > starting_page | link | title | > / | Contact | Contact | > / | Home | Home |
managing_pages_steps.rb
Given /^I am an anonymous user$/ do @user = nil end
When /^I am at the “([^”]*)" page$/ do |starting_page|
visit starting_page end
Then /^I should be able to change pages by clicking “([^”])" and the title is “([^”])"$/ do |page_name, title| click_link page_name response.should have_selector(‘title’, :content => “Contact”)
end
application_helper.rb
module ApplicationHelper
def title
base_title = "Provisioner" if @title.nil? base_title else "#{base_title} | #{@title}" end
end end pages_controller.rb
class PagesController < ApplicationController def home @title = “Home”
end
def contact @title = “Contact” end end layouts/application.html.erb
<title><%= title %></title> <%= stylesheet_link_tag :all %> <%= javascript_include_tag :defaults %> <%= csrf_meta_tag %> <%= link_to "Contact", contact_path %> <%= link_to "Home", root_path %>
<%= yield %>
Any help is much appreciated!