Использование огурца для проверки заголовков страниц - PullRequest
3 голосов
/ 27 июля 2011

Функция

Scenario: As a user that has not signed in I want to be able to sign up for provisioner
        Given I am not logged in
        When I go to the home page
        And click on the "Sign Up" button
        Then I should be on the page with the title: "Sign Up"
        When I provide valid information
        And click the "Submit" button
        Then I should see "Account is being created and verified, you will receive an   email with instructions once account has been approved"
        And the application should send the administrator an email
        And I should be redirected to the home page as an anonymous user

Шаги

When /^I go to the home page$/ do
  visit root_path
end

When /^click on the "([^"]*)" button$/ do |page_name|
  click_link page_name
end

Then /^I should be on the page with the title: "([^"]*)"$/ do |page_title|
  response.should have_selector('title', :content => "#{page_title}")
end

Ошибка

expected css "title" to return something (RSpec::Expectations::ExpectationNotMetError)

Сбой на шаге Затем , однако страница отображается с заголовком «Зарегистрироваться», когда я вручную перехожу на нее.Я хочу, чтобы он был в правильном месте в тесте.Как мне проверить это?

Спасибо за всю помощь заранее.

Ответы [ 4 ]

6 голосов
/ 27 июля 2011

попробуйте это:

page.should have_css('head title', :text => title)

3 голосов
/ 22 августа 2013

С версии 2.1 вы можете сделать это:

expect(page).to have_title "my_title"

0 голосов
/ 01 марта 2016

Если вы используете камень огурцов-рельсов, попробуйте использовать

assert page.has_title?(page_title), "page has title of '#{page.title}'"
0 голосов
/ 27 июля 2011

Это может произойти, потому что по умолчанию селектор капибары установлен на CSS, попробуйте изменить его на

response.should have_xpath('//title', :text => "#{page_title}")
...