【发布时间】:2019-03-06 20:50:21
【问题描述】:
我正在使用rails 4.2.4,我正在尝试测试是否在请求规范中发送了一封电子邮件。
it "sends a reset password email to the user" do
expect do
post users_reset_password_path, params, headers
end.to change(ActionMailer::Base.deliveries, :size).by(1)
end
这导致:
end.to change(ActionMailer::Base.deliveries, :size).by(1)
expected `Array#size` to have changed by 1, but was changed by 0
我确定我的电子邮件正在发送,因为我在 log/test.log 中看到了它。所以我的问题是,发生这种情况是因为它是request 规范吗?如果是这样,我如何测试在请求规范中发送电子邮件? ActionMailer::Base.deliveries 是否仅在邮件规范中更新?
为了提供更多上下文,我正在使用 devise 在控制器中我调用user.send_reset_password_instructions。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rspec rspec-rails