目前在我的控制器规格我有:
require 'spec_helper' describe CustomerTicketsController do login_user describe "POST /create (#create)" do # include EmailSpec::Helpers # include EmailSpec::Matchers it "should deliver the sales alert email" do # expect customer_ticket_attributes = FactoryGirl.attributes_for(:customer_ticket) customer_mailer = mock(CustomerMailer) customer_mailer.should_receive(:deliver). with(CustomerTicket.new(customer_ticket_attributes)) # when post :create,:customer_ticket => customer_ticket_attributes end end end
在我的控制器我有:
# POST /customer_tickets # POST /customer_tickets.xml def create respond_to do |format| if @customer_ticket.save CustomerMailer.sales_alert(@customer_ticket).deliver format.html { redirect_to @customer_ticket,notice: 'Customer ticket was successfully created.' } format.xml { render xml: @customer_ticket,status: :created,location: @customer_ticket } else format.html { render action: "new" } format.xml { render xml: @customer_ticket.errors,status: :unprocessable_entity } end end end
我的测试目前产生以下输出:
06002
谢谢你的看.
解决方法
您可以检查ActionMailer :: Base.deliveries.count以确保其递增1.
这样的东西(未经测试)
expect {custom_mailer.deliver}.to change { ActionMailer::Base.deliveries.count }.by(1)
原文地址:https://www.jb51.cc/ruby/265758.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。