ActionMailer :: Base.deliveries nach RSpec-Test ausräumen

Habe ich Folgendes RSpec testen für meine UserMailer Klasse:

require "spec_helper"

describe UserMailer do
  it "should send welcome emails" do
    ActionMailer::Base.deliveries.should be_empty
    user = Factory(:user)
    UserMailer.welcome_email(user).deliver
    ActionMailer::Base.deliveries.should_not be_empty
  end
end

Dieser test bestanden, das erste mal, scheiterte aber zum zweiten mal ich lief es. Nach ein wenig Debuggen, es scheint, dass der 1. test Hinzugefügt ein Element der ActionMailer::Base.Lieferungen array und dieses Element wurde nie gelöscht. Das bewirkt, dass die erste Zeile in der Prüfung zu scheitern, da das array nicht leer ist.

Was ist der beste Weg, um klar aus dem ActionMailer::Base.Lieferungen array nach einem RSpec testen?

Kommentar zu dem Problem - Öffnen
warum sollten Sie nicht verwenden ActionMailer::Base.Lieferungen = [] in Ihrer setup - block? Kommentarautor: Vasiliy Ermolovich
Ist diese Skillung befindet sich in - spec/Mailer/? Kommentarautor: Andy Lindeman

InformationsquelleAutor der Frage Kevin Pang | 2011-04-30

Schreibe einen Kommentar