ActionMailer intermittent test failure

I’ve written a test for a controller that sends email using
ActionMailer. The problem is the test fails sporadically. It almost
seems like ActionMailer::Base.deliveries isn’t being updated by the
time the assert checks, but I don’t think ActionMailer sends emails
asynchronously, at least nothing in the guide indicates that is the
case.

I tried adding a sleep before the assert to see if it was a threading
thing, but I still get the failure at about the same interval.

Here is my test code:

test “should remind players” do
session.clear
get :reminder
assert_emails 2
assert_equal %w[[email protected]], ActionMailer::Base.deliveries[0].to
assert_equal “Game Reminder”,
ActionMailer::Base.deliveries[0].subject
assert_equal users(:two).email,
ActionMailer::Base.deliveries[0].from[0]
end

Any known issues with intermittent ActionMailer or
ActionMailer::TestCase failures?


Curtis C.
[email protected]
home:http://curtiscooley.com
blog:http://ponderingobjectorienteddesign.blogspot.com

Leadership is a potent combination of strategy and character. But if
you must be without one, be without the strategy.
– H. Norman Schwarzkopf

Ignore. I found the problem and it had nothing to do with ActionMailer
or ActionMailer::Test. It was a boundary condition error in my test
fixture. Sometimes the test took just long enough to run that a date
check failed and no emails were actually sent.

On Wed, Jan 6, 2010 at 9:33 AM, Curtis C. [email protected]
wrote:

Here is my test code:
Any known issues with intermittent ActionMailer or
– H. Norman Schwarzkopf


Curtis C.
[email protected]
home:http://curtiscooley.com
blog:http://ponderingobjectorienteddesign.blogspot.com

Leadership is a potent combination of strategy and character. But if
you must be without one, be without the strategy.
– H. Norman Schwarzkopf