我是Rspec的新手,我正在尝试为一个简单功能编写测试。
用户创建合同,如果合同已创建并且其属性具有特定值,则我发送电子邮件通知老师。 如何在测试中写下条件?
我正在使用letter_opener和ActionMailer。
describe "When a user creates a apprentice contract" do
let(:admin) { users(:admin) }
before { signin admin }
it "should send an email to the teacher" do
contract = create(:contract)
contract.education_type.must_equal("company_apprentice")
end
end
contract.education_type.must_equal("school_apprentice")
为真时,我想测试它是否发送电子邮件。
我如何在此测试中写出来?
答案 0 :(得分:1)
it 'should send an email to the teacher' do
expect { create(:contract, education_type: 'company_apprentice' }
.to change { ActionMailer::Base.deliveries.count }
.by(1)
end
您还需要以下设置:
# config/environments/test.rb
config.action_mailer.delivery_method = :test