Wednesday, January 6, 2010

[Rails] Re: ActionMailer intermittent test failure

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 Cooley <curtis.cooley@gmail.com> wrote:
> 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[player@one.com], 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 Cooley
> curtis.cooley@gmail.com
> 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
>

--
Curtis Cooley
curtis.cooley@gmail.com
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

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate