I''m seeing something really weird...I''ve got a functional test set up, and it runs fine. I add a second one after it...and now the first one breaks. Comment out the second one, and the first one runs fine again. No, the failed assertion is not happening in the second test, according to the test output it''s definitely a failure in the first test. Why would this be happening? I thought the outcome of one test shouldn''t affect the outcome of another...but clearly this is not the case. Here are the two tests. If I comment out test_signup_bad_password, test_signup runs fine. If I include test_signup_bad_password, then test_signup fails on assert_equal 1, user.verified saying "<1> expected but was <0>." I''m just confused, because I don''t think it should work like this... def test_signup LoginEngine::CONFIG[:use_email_notification] = true LoginEngine::CONFIG[:require_validation] = true ActionMailer::Base.deliveries = [] -q6EIbr9enJhWPgeUx9IW0g@public.gmane.org[:return_to] = "/bogus/location" assert_equal 5, User.count post :signup, :user => { :login => "newbob", :password => "newpassword", :password_confirmation => "newpassword", :email => "newbob-J0of1frlU80@public.gmane.org" } assert_session_has_no :user assert_redirect_url(@controller.url_for(:action => "login")) assert_equal 1, ActionMailer::Base.deliveries.size mail = ActionMailer::Base.deliveries[0] assert_equal "newbob-J0of1frlU80@public.gmane.org", mail.to_addrs[0].to_s assert_match /login:\s+\w+\n/, mail.encoded assert_match /password:\s+\w+\n/, mail.encoded mail.encoded =~ /key=(.*?)"/ key = $1 user = User.find_by_email("newbob-J0of1frlU80@public.gmane.org") assert_not_nil user assert_equal 0, user.verified # First past the expiration. Time.advance_by_days = 1 get :home, :user=> { "id" => "#{user.id}" }, "key" => "#{key}" Time.advance_by_days = 0 user = User.find_by_email("newbob-J0of1frlU80@public.gmane.org") assert_equal 0, user.verified # Then a bogus key. get :home, :user=> { "id" => "#{user.id}" }, "key" => "boguskey" user = User.find_by_email("newbob-J0of1frlU80@public.gmane.org") assert_equal 0, user.verified # Now the real one. get :home, :user=> { "id" => "#{user.id}" }, "key" => "#{key}" user = User.find_by_email("newbob-J0of1frlU80@public.gmane.org") assert_equal 1, user.verified # Fails when signup_bad_password is run post :login, :user => { :login => "newbob", :password => "newpassword" } assert_session_has :user get :logout end def test_signup_bad_password LoginEngine::CONFIG[:use_email_notification] = true LoginEngine::CONFIG[:require_validation] = true ActionMailer::Base.deliveries = [] -q6EIbr9enJhWPgeUx9IW0g@public.gmane.org[:return_to] = "/bogus/location" post :signup, :user => { :login => "newbob", :password => "bad", :password_confirmation => "bad", :email => "newbob-J0of1frlU80@public.gmane.org" } assert_session_has_no :user assert_invalid_column_on_record "user", "password" assert_success assert_equal 0, ActionMailer::Base.deliveries.size end