Как смоделировать сбой базы данных для целей тестирования (в Ruby on Rails) - PullRequest
5 голосов
/ 11 ноября 2011

Это обычная установка для выживания приложения с сообщением пульса с помощью какого-либо инструмента мониторинга, например, Monit.Если приложение работает и все работает правильно, оно возвращает сообщение «Я жив», если происходит сбой базы данных или зависает веб-сервер, то ничего не возвращается или страница внутренней ошибки сервера (код состояния HTTP 500).Как вы можете смоделировать ошибку базы данных , чтобы проверить это поведение в Ruby on Rails?Было бы хорошо, если бы можно было включить / отключить эту функцию для целей тестирования внутри самого теста (Test::Unit или RSpec).

1 Ответ

6 голосов
/ 11 ноября 2011

Похоже, можно использовать ActiveRecord::Base.remove_connection для имитации сбоя базы данных.При использовании RSpec это будет выглядеть так:

  describe "GET running" do
    it "renders a 500 if crashed" do
      ActiveRecord::Base.remove_connection
      get :running
      response.response_code.should == 500
      ActiveRecord::Base.establish_connection
    end
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...