Devise und RSpec

Devise und rspec haben eine nicht ganz einfache Beziehung zueinander. Während Devise so ziemlich die Alles-Totschlag-Benutzerauthentifizierung für Rails ist, ist rspec die fast perfekte Lösung für automatische Softwaretests.

Als ich neulich jedoch einen Test geschrieben habe, der einen eingeloggten Benutzer erforderte:

Factory(:user)
sign_in @user

erhielt ich immer folgende Fehlermeldung:

ThreadError:
uncaught throw `warden' in thread 0x7fc4b36c14b0

Die Lösung ist ganz einfach, der Login erfordert einen bestätigten User, was gefehlt hat war ein einfaches:

@user.confirm!

vor dem Loginversuch. Wird der Tests entsprechend abgeändert, funktioniert es wie gewünscht.

Schreibe einen Kommentar