2014-01-24 3 views
0

Я пытаюсь выяснить, как тестировать количество элементов страницы, которые находятся на определенном виде, подсчитывая экземпляры класса, который я нахожу. Я запускаю рельсы 4.0.0, Ruby 2.0.0 и Capybara 2.0.1.Тест CSS с Capybara и rails

Вот мой тест:

it "has 10 successful charges" do 
    visit '/' 
    expect(page).to have_css("ul.successful", :count => 10) 
end 

Который выводит:

Failure/Error: expect(page).to have_css("ul.successful", :count => 10) 
    expected #has_css?("ul.successful", {:count=>10}) to return true, got false 

Когда я бегу Rspec спецификации, другие мои тесты в том же файле работают, как и ожидалось, так что это не проблема.

+0

Вы попробовали save_and_open_page, чтобы визуально проверить код и посмотреть, действительно ли там 10 x ul.successful? –

ответ

0

Вы можете попробовать это:

page.all("ul.successful").length.should == 10 

page.all возвращает массив результатов, которые вы можете рассчитывать, используя суффикс .length. Rspec должен дать вам сообщение об ошибке и полезное объяснение, если он не найдет ровно 10 результатов. Например:

RSpec::Expectations::ExpectationNotMetError: expected: 10 
got: 9 (using ==) 
Смежные вопросы