I have such problem: There is a method in user_mailer.rb
def activation_needed_email(user)
@user = user
@url = activate_user_url(user.activation_token)
mail(:to => user.email,
:subject => "Welcome to my site")
end
And I have a user_mailer_test.rb which looks like this:
def test_activation_needed_email
user = users(:test_user)
mail = UserMailer.activation_needed_email(user)
assert_match "Welcome", mail.body.encoded
end
The test user is described in fixtures users.yml file as:
test_user:
email: 'testuser@example.com'
activation_state: 'inactive'
...
In Development environment everything works perfect, but when I run rake test I see such error:
ActionController::UrlGenerationError: ActionController::UrlGenerationError: No route matches {:action=>"activate", :controller=>"users", :id=>nil} missing required keys: [:id]
app/mailers/user_mailer.rb:11:in `activation_needed_email'
test/mailers/user_mailer_test.rb:7:in `test_activation_needed_email'
why :id is missing? the test user from fixtures has it. there is no such error in development environment.
Aucun commentaire:
Enregistrer un commentaire