rspec не завершается ошибкой при указании несуществующего атрибута для have_selector - PullRequest
1 голос
/ 23 ноября 2011

Я начинаю использовать RSpec2 для тестирования моего приложения на Rails 3. Вот простой RSpec, который у меня пока есть:

require 'rspec_helper'

describe "the sign in process" do 
  it "should have a logo" do
    visit "/"
    page.should have_selector("#login-logo") do |login_logo|
      login_logo.should have_selector("img", :src => "no such image")
    end 
  end

  it "should have an email address label" do
    visit "/"
    page.should have_selector("label", :for => "no such input") do |label|
      label.should has_content("Email Address")
    end
  end                                                                                                                                                                                                                                                                                                                              
end   

На рассматриваемой странице ("/") нет элемента img с src для "no such image"; Также нет тега label с атрибутом for «такого ввода нет». Тем не менее, мой тест RSpec проходит, когда я запускаю rspec /path/to/my_test.rb.

Я хочу принудительно завершить работу RSpec, если на странице нет элемента с данным атрибутом.

1 Ответ

1 голос
/ 10 июля 2012

Я только что решил ту же проблему,

login_logo.should have_selector("img", :src => "no such image")

- это синтаксис Webrat, и если вы используете Capybara, у вас должен быть такой синтаксис:

it "renders the form to create a post" do
  render
  rendered.find('form').tap do |form|
    form.should have_selector("input[type=submit][value='Save']")
  end
end

Вот ссылка, где она больше размечено

...