2016-07-20 35 views
9

Pracuję nad moją pierwszą aplikacją odkąd zainstalowałem Rails 5. Kiedy uruchomiłem moją specyfikację dla działań kontrolera, dostałem ostrzeżenie poniżej, mimo że wszystkie moje testy mijały.Zmiany w testach kontrolera Rails 5 - "Devise :: TestHelpers" jest przestarzałe i zostanie usunięte z Devise.

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

Więc spec/rails_helper.rb zmienić tę linię:

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

do

config.include Devise::Test::ControllerHelpers 

Ta zmiana wykonana ostrzeżenie odejść, ale teraz specyfikacje dla modeli zawodzą. (Przechodzili przed zmianą). Jak mam to naprawić? Dzięki!

+1

czy mógłbyś dodać kod z jednej specyfikacji, aby to sprawdzić? – neydroid

+0

@neydroid Pierwsza odpowiedź rozwiązała to. Wszystkie specyfikacje dla obu modeli i kontrolerów są przekazywane i nie ma już komunikatu ostrzegawczego. Dzięki! – emico7

Odpowiedz

14

należy zmienić plik spec/rails_helper.rb do następujących:

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

To zapewni, że moduł Devise::Test::ControllerHelpers ma być zawarte tylko w badaniach kontrolera. Powodem niepowodzenia testów modelu jest to, że ten moduł jest specyficzny dla testów kontrolera.