Использование Webrat для проверки списка имеет определенное количество элементов li

Для шага огурца я знаю, что конкретный элемент ul должен иметь 5 дочерних элементов li. Как я могу утверждать это с помощью Webrat?

Я предполагаю, что может быть что-то вроде:

Then ".selector" should have n ".another-selector"

или, может быть

Then I should see n ".selector" within ".another.selector"

Есть ли что-нибудь подобное, или я должен сделать индивидуальный шаг?

Спасибо!


Обновление:

Я прибегал к следующему, который, кажется, работает нормально:

# Check there are the correct number of items
assert_have_selector("#activity ol li:nth-child(5)")
assert_have_no_selector("#activity ol li:nth-child(6)")

Еще одно обновление:

Я немного изменил то, что предоставил Мэтт:

Then /^I should see ([0-9]+) "([^\"]*)"$/ do |count, selector|
  response.body.should have_selector(selector, :count => count.to_i)
end

Работает удовольствие!


person dylanfm    schedule 08.07.2010    source источник


Ответы (1)


Вот как я это делаю:

Then /^"([^\"]*)" should have ([0-9]+) "([^\"]*)"$/ do |selector1, count, selector2|
  within(selector1) do |content|
       content.should have_selector(selector2, :count => count.to_i)
  end
end

Что нужно сделать?

Матта

person Matta    schedule 08.07.2010