2012-12-09 12 views
5

Ich versuche zu testen, dass ein nicht angemeldeter Benutzer auf die Registrierungsseite des Geräts geleitet wird, wenn er versucht, auf gesicherten Inhalt zuzugreifen. Ich verwende RSpec mit Capybara für die Tests.Zugriff auf konfigurierte Nachrichten für Rspec- und Capybara-Tests

Um sicherzustellen, dass sie die Anmeldeseite erreichen, stelle ich sicher, dass die Seite, auf der sie landen, den Inhalt der Anmeldeseite für die Anmeldeseite enthält. (Standardmäßig ist dies: You need to sign in or sign up before continuing.)

Anstatt schreiben Sie den Test wie:

page.should have_content "You need to sign in or sign up before continuing." 

Gibt es eine Möglichkeit die konfigurierte Nachricht zuzugreifen (falls ich es später zu ändern)? Etwas wie:

page.should have_content Devise::Messages.Login_required 

Antwort

8

Devise Nachrichten in config/locales/devise.*.yml gespeichert werden, so dass Sie sie wie jede andere Übersetzungen zugreifen:

page.should have_content I18n.t("devise.failure.unauthenticated") 
Verwandte Themen