Как в RSpec проверить настройку уведомления об ошибке - PullRequest
0 голосов
/ 02 июня 2018

Обычно я создаю свои действия контроллера следующим образом:

  def destroy
    if @account.destroy
      flash[:success] = "Account deleted!"
    else
      flash[:error] = "Could not delete account!"
    end
    redirect_to(:back)
  end

Очевидно, что в большинстве случаев вы не столкнетесь с ошибками этого запроса.Как я должен проверить, что вспышка ошибки установлена ​​в случае, если @account.destroy как-то вернет false?Есть ли способ высмеять это?

1 Ответ

0 голосов
/ 02 июня 2018

Если вы ожидаете, что метод destroy всегда должен возвращать true, было бы лучше иметь @account.destroy!.Таким образом, будет сгенерировано исключение, если ошибка destroy не удалась, и вы (как владелец приложения) получите уведомление о том, почему оно (неожиданно) не удалось.

def destroy
    @account.destroy!
    flash[:success] = "Account deleted!"
    redirect_to(:back)
end

Но чтобы ответить на ваш первоначальный вопрос,вы всегда можете заблокировать возврат метода, используя allow_any_instance_of(Account).to receive(:destroy).and_return(false)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...