Огурец / RSpec тестирование невероятных ошибок - PullRequest
0 голосов
/ 08 февраля 2010

У меня проблема с тестированием следующего кода контроллера:

def publish
  if @article.publish
    flash[:notice] = "Article '#{@article.title}' was published."
  else
    # This is not tested
    flash[:error] = "Error publishing article."
  end
  redirect_to :action => :index
end

Где функция публикации выглядит так:

def publish
  self.toggle!(:is_published)
end

Функция toggle! является атомарной и теоретически завершится сбоем только тогда, когда возникнет проблема с базой данных (на практике я могу найти ряд сценариев, где ошибка должна быть обнаружена, потому что кто-то нарушает реализацию метода публикации). Как я могу проверить в Cucumber, что в случае ошибки отображается правильное сообщение?

1 Ответ

1 голос
/ 08 февраля 2010

Вот, проверьте это: http://blog.flame.org/2009/11/19/how-i-test-ruby-on-rails-with-rspec-and-cucumber

it "tells me to bugger off (not admin)" do
  login_user
  users = make_users
  get :index
  flash[:error].should match "You must be an administrator to access this page."
  response.should redirect_to(root_path)
end

Надеюсь, это поможет:)

...