gpt4 book ai didi

ruby-on-rails - rspec 模拟 ActionMailer

转载 作者:行者123 更新时间:2023-12-01 05:25:29 25 4
gpt4 key购买 nike

我正在编写一些 rspec 测试,我注意到它在访问我的 Mailer 类时变慢了。有没有办法完全模拟 ActionMailer::Base 类,以便我可以在电子邮件发送前后测试 Controller 的其他组件?

这是我的邮件程序类定义

class OrganisationMailer < ActionMailer::Base
# code to send emails
end

这是我编写的测试之一
require 'spec_helper'

describe OrganisationsController do

describe "#email_single" do
context "With email address" do
let(:org) {Organisation.make!}

it "redirects to listing" do
get :email_single, :id => org.id
response.should redirect_to(organisations_path)
end
end
end
end

最佳答案

用您包含的小片段很难回答这个问题,但是您应该能够排除 Controller 发送给 OrganisationMailer 的任何消息。因此它们在 rspec 示例中是无操作的,在这些示例中您不必使用该逻辑。

或者,您可以查看替换 OrganisationMailer使用 stub_const 的测试替身:

stub_const("OrganisationMailer", my_test_double)

然后你就可以完全控制 Controller 和邮件程序之间的交互了。

关于ruby-on-rails - rspec 模拟 ActionMailer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14078946/

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