首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规格内干燥邮件

规格内干燥邮件
EN

Stack Overflow用户
提问于 2013-10-12 01:34:21
回答 1查看 66关注 0票数 0

我正在为发送多封电子邮件的邮件程序编写一些规范。mailer的控制器是:

代码语言:javascript
复制
def create
  @message = Message.new(params[:message])

  if @message.valid?
    @message.email.each do |email|
      MessageMailer.new_message(@message, email).deliver
    end
    redirect_to users_index_path, :notice => "Email sent correctly"
  else
    notice = "There was an error"
    render :new
  end
end

和规范:

代码语言:javascript
复制
describe "POST 'create' for a diffusion" do
  it "returns http success" do
    @diffusion = Fabricate.build(:diffusion)
    post 'create', message: @diffusion
    response.should be_success

    @before_send = ActionMailer::Base.deliveries.size
    @diffusion.email.each do |email|
      MessageMailer.new_message(@diffusion, email).deliver
    end
    ActionMailer::Base.deliveries.size.should eq @before_send + @diffusion.email.size
  end
end

问题是,当我创建一个Post请求时,由于某种原因,它不会发送电子邮件,所以我必须强制它。

有没有办法在我创建post请求时强制发送电子邮件?是不是一定要重复一遍?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-10-12 13:04:15

我认为如果你在发布到create之前捕获@before_send,它应该可以工作。

代码语言:javascript
复制
describe "POST 'create' for a diffusion" do
  it "returns http success" do
    @diffusion = Fabricate.build(:diffusion)
    @before_send = ActionMailer::Base.deliveries.size

    post 'create', message: @diffusion
    response.should be_success

    ActionMailer::Base.deliveries.size.should eq @before_send + @diffusion.email.size
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19324062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档