Bonsoir à tous,
pour le fun et pour voir ce que donne le TDD/BDD, j’écris un petit site
web pour gérer ses bouquins.
J’ai un notifier Action Mailer pour pouvoir activer un utilisateur et
aussi remettre le password à zéro.
Cela me donne cela :
class Notifier < ActionMailer::Base
default_url_options[:host] = “127.0.0.1”
def password_reset_instructions(user)
subject “Password Reset Instructions”
from “MyLibrary Notifier [email protected]”
recipients user.email
sent_on Time.now
body :edit_password_reset_url =>
edit_password_reset_url(user.perishable_token)
end
def activation_instructions(user)
subject “Activation Instructions”
from “MyLibrary Notifier [email protected]”
recipients user.email
sent_on Time.now
body :account_activation_url =>
register_url(user.perishable_token)
end
def activation_confirmation(user)
subject “Activation Complete”
from “MyLibrary Notifier [email protected]”
recipients user.email
sent_on Time.now
body :root_url => root_url
end
end
j’ai bien dans app/view/notifier les trois fichiers erb
Sous Rspec, je fais entre autres les tests suivants (pas sur qu’ils
soient intelligents mais bon c’est une autre histoire) :
it “should send a mail when asking for password reset instructions” do
user = Factory :user
init_mail_size = ActionMailer::Base.deliveries.size
Notifier.password_reset_instructions(user)
ActionMailer::Base.deliveries.size.should == init_mail_size + 1
end
it “should send a mail for activation instructions” do
user = Factory :user
init_mail_size = ActionMailer::Base.deliveries.size
Notifier.deliver_activation_instructions(user)
ActionMailer::Base.deliveries.size.should == init_mail_size + 1
end
Problème : le premier plante au test et pas le second !
Vous auriez une super idée ?
Merci d’avance,
Sylvain