2015-05-01 4 views
5

средыRails 4, RSpec 3,2 - как смоделируйте метод deliver_now ActionMailer, чтобы вызвать исключения

Руби 2.2.1, Rails 4.2.0, RSpec-ядро 3.2.2, RSpec-ожидания 3.2.0, RSpec-издевается 3.2.1, RSpec рельсы 3.2.1, RSpec-поддержка 3.2.2

Я следующий метод

def send_event_alert_email(event_id) 
    event = Event.find_by(id: event_id) 
    ... 
    ...  
    ... 
    EventAlertMailer.event_alert(event_id).deliver_now 

    create_alert(event) 
end 

мне нужно написать спецификации, что делает уверен, что create_alert(event) не получает вызывается при EventAlertMailer.event_alert(event_id).deliver_now вызывает какие-либо исключения. Таким образом, основной вопрос заключается в том, как смоделировать deliver_now, чтобы поднять возможные исключения, которые он мог бы реально бросить.

ответ

5

Вот как проверить deliver_now метод:

describe EventAlertMailer do 
    it 'sends email' do 
    delivery = double 
    expect(delivery).to receive(:deliver_now).with(no_args) 

    expect(EventAlertMailer).to receive(:event_alert) 
     .with(event_id) 
     .and_return(delivery) 

    MyClass.send_event_alert_email 
    end 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^