IM à l'aide de RSPEC et lorsque je exécute RAKE SPEC, le mailer utilisateur envoie un courrier électronique via SMTP et ne stocke pas l'e-mail dans l'action ActionMailer :: Base.deliveries-Array (appelé par un observateur utilisateur) ...
pourrait Vous me donnez un indice pourquoi? p> config-fichiers: p>
5 Réponses :
Je suis tellement stupide ... avais "ActionMailer :: base.delivery_mesthod =: smtp" dans mon initialisateur Setup_mail.rb ... Aaargh .... p>
J'ai eu le même problème et j'ai déplacé ce paramètre sur config / environnements / production.rb code> et le modifié sur
config.action_mailer.delivery_method =: smtp code>. Merci d'avoir posté votre réponse et de me sauver un peu de temps et de débogage; Tu n'es définitivement pas stupide: D
Vous savez dans le monde, Dump Personnes est partout ... y compris moi!
Élaborer sur la solution à ce problème un peu plus: P>
Dans votre configuration / envioments / test.rb, par défaut, vous devez avoir la ligne Qu'est-ce que cela fait est que cela dit ActionMailer de ne pas envoyer le courrier électronique normalement, mais plutôt stocker l'e-mail envoyé dans le tableau Toutefois, si vous définissez la méthode de livraison à quelque chose comme J'avais fait exactement cela tout en utilisant Mailcatcher pour afficher mes emails envoyés, ce qui entraîne l'échec de mes tests, même si j'étais certain que des courriels étaient correctement envoyés! P>
Alors, assurez-vous que vous ne définissez pas de livreur_method autre que: test dans votre environnement de test. P>
En tant que note latérale: Si vous utilisez du congé, vous pouvez vérifier le tableau config.action_mailer.delivery_method =: test code> p> p>
ActionMailer :: base.deliveries code>. Ceci est utile pour les tests car vous pouvez indiquer combien d'emails ont été snt à l'aide de la méthode de contrôle, de comptage, de longueur sur le tableau ActionMailer :: Base.Deliveries Array. P>
config.action_mailer.delivery_method =: smtp code>, qui pourrait écraser votre précédent livraison_method =: test; Par conséquent, votre
ActionMailer :: base.deliveries code> ne sera pas rempli. p>
devise.mailer.deliveries code>. p>
Dans mon cas, j'avais et j'ai également eu p> qui en vigueur (je suppose) n'envoie pas le e-mail et aussi ne le supporte pas dans ActionMailer :: base.deliveries code> Array soit. p> p>
Un autre gotcha possible ... Ne pas commettre l'erreur, comme je l'ai fait, d'inclure dans config / environnement.rb, que j'ai mal cru à tort serait remplacé par le plus configuration / environnements spécifiques / test.rb. Suppression de la ligne ci-dessus à partir de configuration / environnement.rb corrigé le problème pour moi. p> p>
Dans mon cas, j'ai oublié de .Deliver code> à l'intérieur de mon
spec.rb code>. C'est bizarre, cependant, je reçois un msg stdout de rails (rails 5) de "e-mail livré" même sans cela, qui était assez confus. En regardant votre spécification m'a fait me rendre compte que je l'ai oublié. Merci! P>
Quelle est votre configuration de courrier dans votre environnement de test?