Как проверить метод суперклассов, выдает исключение, используя rspec с Ruby - PullRequest
3 голосов
/ 04 января 2012

Я пытаюсь найти лучший способ написания теста rspec, который будет специфицировать вызов почта (mail_content) Поставлять и вызвать исключение, чтобы я мог утверждать, что Rails.logger вызван.

Я знаю, что вы не собираетесь издеваться над тестируемым классом, но относится ли это к суперклассам?

class MyMailer < ActionMailer::Base
  default from: 'test@test.com'
  default charset: 'UTF-8'
  default content_type: 'text/plain'
  default subject: 'Test'

  def send_email (to, mail_headers_hash, mail_body)
    begin
      headers mail_headers_hash
      mail_content = {to: to, body: mail_body}
      mail(mail_content).deliver

     rescue ArgumentError, StandardError => e
    Rails.logger.error "Failed to email order response - #{e}"
  end
end
end
end

1 Ответ

0 голосов
/ 03 апреля 2012

С RSpec вы можете заглушки исключение. Смотрите следующий фрагмент кода:

whatever.should_receive(:do_some_stuff).and_raise(ArgumentError)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...