2016-07-20 8 views
9

Ich arbeite an meiner ersten App, seit ich Rails 5 installiert habe. Als ich meine Spezifikationen für Controller-Aktionen durchführte, erhielt ich die folgende Warnmeldung, obwohl alle meine Tests bestanden hatten.Rails 5 Controller Test Änderungen - `Devise :: TestHelpers` ist veraltet und wird von Devise entfernt. '

[Devise] including `Devise::TestHelpers` is deprecated and will be removed from Devise.  
For controller tests, please include `Devise::Test::ControllerHelpers` instead. 

So in spec/rails_helper.rb ändere ich diese Zeile:

config.include Devise::TestHelpers, type: :controller 

zu

config.include Devise::Test::ControllerHelpers 

Diese Änderung entfernt die Warnung gehen gemacht, aber jetzt sind die Spezifikationen für die Modelle versagen. (Sie gingen vor dem Wechsel vorbei.) Wie soll ich das reparieren? Vielen Dank!

+1

Könnten Sie Code aus einer Spezifikation hinzufügen? – neydroid

+0

@neydroid Die erste Antwort löste es. Alle Spezifikationen für beide Modelle und Controller werden übergeben, und keine Warnmeldung mehr. Vielen Dank! – emico7

Antwort

14

Sie sollten Ihre spec/rails_helper.rb Datei wie folgt ändern:

config.include Devise::Test::ControllerHelpers, type: :controller 

Dadurch wird sichergestellt, dass das Devise::Test::ControllerHelpers Modul nur in Ihrem Controller-Tests enthalten sein wird. Der Grund dafür, dass Ihre Modelltests fehlschlagen, liegt darin, dass dieses Modul Controller-Tests unterliegt.