Ich habe einige E-Mail-Nachrichten von Action Mailer und möchte testen, welches Layout zum Rendern der E-Mail verwendet wird. Ich habe dieses Beispiel im Internet gefunden, aber es stammt aus dem Jahr 2008 und funktioniert nicht mit Rails 3.2 und vermutlich späteren Versionen.
Meine Motivation dafür ist, dass ich einen Komponententest schreiben möchte, der behauptet, dass der Mailer mit einem bestimmten Layout gerendert wurde. Wenn das geändert wird, bricht der Test ab.
ActionController::TestCase
hat eine Methode assert_template
, also sollte so etwas funktionieren:
Das Testen des Layouts, das beim Senden von E-Mails gerendert wird, kann im Rahmen der Controller-Tests mit assert_template
erfolgen.
Gegeben die folgende Mailerklasse und Methode,
%Vor% Die E-Mail zum Zurücksetzen des Passworts wird mit my_layout.html.erb
layout gerendert.
Diese Mailer-Methode wird wahrscheinlich in einer UsersController
-Methode aufgerufen, z. B .:
Die assert_template layout: "my_layout"
-Anweisung im folgenden Controller-Test für users_controller#forgot_password
würde das verwendete Layout überprüfen:
Die relevanten Teile aus dem Protokoll:
%Vor%Referenzen:
Tags und Links ruby-on-rails testing actionmailer