Webrat имеет неожиданный результат при использовании оператора "если"

Я использовал webrat в своем проекте rails 3.0.7 и пытался написать тест, использующий регулярные выражения. Это должно потерпеть неудачу, но заявление if, кажется, портит результат.

    it "should have 'microposts' if 0 posted" do
      visit root_path
      response.should have_selector('span.microposts') do |span|
        if span =~ /\d/
          span.should contain('hello')
        end
      end
    end

Тест пытается подтвердить этот тест, но он все еще успешно выполняется, если используется оператор "если". Он пытается сопоставить содержание "0 микросообщений".

Когда я использую эти строки вместо выражения "если":

   response.should have_selector('span.microposts') do |counter|
     counter.should contain(/hello/)
   end

Я получаю, что тест окончательно проваливается, как и положено, но тогда я не могу проверить число перед содержимым внутри диапазона, как я пытался сделать выше.

Разве webrat не передает, если заявления хорошо, или я делаю что-то не так?

Заранее спасибо!

1 ответ

Кажется, вам не хватает end но я не вижу, как это не будет бомбить.

it "should have 'microposts' if 0 posted" do
  visit root_path
  response.should have_selector('span.microposts') do |span|
    if span =~ /\d/
      span.should contain('hello')
    end
  end
end
Другие вопросы по тегам