Gibt es eine Möglichkeit zu testen, mit welchem ​​Layout eine Action Mailer-E-Mail gerendert wird?

8

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.

    
Luke Francl 25.04.2015, 00:22
quelle

2 Antworten

3

ActionController::TestCase hat eine Methode assert_template , also sollte so etwas funktionieren:

%Vor%     
Fred Willmore 06.05.2015 17:00
quelle
2

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 .:

%Vor%

Die assert_template layout: "my_layout" -Anweisung im folgenden Controller-Test für users_controller#forgot_password würde das verwendete Layout überprüfen:

%Vor%

Die relevanten Teile aus dem Protokoll:

%Vor%

Referenzen:

  1. Grundlagen zu Aktionssendern
  2. Testen Sie Ihre Mailer - Funktionsprüfung
  3. assert_template-Methode
Prakash Murthy 09.05.2015 12:55
quelle