コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

ActionMailerのrpsecで件数を計りたいときはActionMailer::Base.deliveriesのsizeを測る

表題だけですべてを表現してしまう系Tips記事

環境

rails (5.2.0)

計り方

RSpec.describe "なんかメール送るやつ" do
  after(:all) {
    # 意図的にテスト後にクリアにする
    ActionMailer::Base.deliveries.clear
  }

  describe "#send_mail的な" do
    subject {"なんかメール送る処理"}
    context "存在するEmailアカウントの場合" do
      before do
        subject
      end

      it "1件送られていること" do
        expect(ActionMailer::Base.deliveries.size).to eq(1)
      end
    end
  end
end

ActionMailer::Base.deliveries に実メール情報も入っているので内容とかもちゃんと見たいときはそちらをチェックする。