gpt4 book ai didi

actionmailer - Rails 4、RSpec 3.2 - 如何模拟 ActionMailer 的 Deliver_now 方法来引发异常

转载 作者:行者123 更新时间:2023-12-03 01:23:00 26 4
gpt4 key购买 nike

环境

Ruby 2.2.1、Rails 4.2.0、rspec-core 3.2.2、rspec-expectations 3.2.0、rspec-mocks 3.2.1、rspec-rails 3.2.1、rspec-support 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

我需要编写规范,确保当 EventAlertMailer.event_alert(event_id).deliver_now 引发任何异常时,不会调用 create_alert(event) 。因此,基本问题是如何模拟 deliver_now 来引发它实际上可能抛出的异常。

最佳答案

以下是测试 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

关于actionmailer - Rails 4、RSpec 3.2 - 如何模拟 ActionMailer 的 Deliver_now 方法来引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com