Проверка нескольких копий селектора в RSpec - PullRequest
0 голосов
/ 09 ноября 2011

У меня проблема с одним из моих тестов в RSpec. Предполагается, что рассматриваемый тест проверяет наличие более одной записи на странице индекса, проверяя наличие более одного тега <article class="post"> на странице. Моя текущая реализация выглядит так:

it "should have more than one post" do
  get :index
  response.should have_selector("article", :class => "post", :count => 2)
end

По некоторым причинам этот тест не пройден, несмотря на отображение нескольких экземпляров тега <article class="post"> в выходных данных отладки. Конкретная ошибка, которую он выдает:

Failures:

1) PostsController GET 'index' should have more than one posts
   Failure/Error: response.should have_selector("article", :class => "post", :count => 2)
   expected following output to contain a <article class='post'/> tag:

Обратите внимание, что если я уберу опцию :count => 2, тест пройдет без инцидентов.

Кто-нибудь знает, почему этот тест не пройден?

1 Ответ

2 голосов
/ 09 ноября 2011

Полагаю, вы используете Capybara в RSpec или Webrat?С опцией подсчета ваш тест утверждает, что ответ содержит ровно 2 сообщения, а не как минимум 2. Делает ли минимальный вариант то, что вы хотите?

См. https://github.com/jnicklas/capybara/blob/master/lib/capybara/node/matchers.rb и http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers#has_selector%3F-instance_method

...