我尝试使用这个How do I test Pony emailing in a Sinatra app, using rspec? 测试发送电子邮件的 Rails 3.1 应用程序。发送工作正常,但我很难让测试正常工作。这是我到目前为止所拥有的...
规范/spec_helper.rb
config.before(:each) do
do_not_send_email
end
.
.
.
def do_not_send_email
Pony.stub!(:deliver) # Hijack to not send email.
end
在我的 users_controller_spec.rb
it "should send a greeting email" do
post :create, :user => @attr
Pony.should_receive(:mail) do |params|
params[:to].should == "nuser@gmail.com"
params[:body].should include("Congratulations")
end
end
我明白了...
失败:
1) UsersController POST 'create' 成功应该发送一封问候邮件失败/错误:Pony.should_receive(:mail) do |params| (Pony).mail(any args) expected: 1 time received: 0 times # ./spec/controllers/users_controller_spec.rb:121:in `block (4 levels) in '
看起来 Pony 没有收到电子邮件,但我知道真正的电子邮件正在发送出去。
有任何想法吗?