Ich habe eine Anforderungsspezifikation für Interaktionen mit dem Benutzermodell. Ich möchte sicherstellen, dass Benutzer mit der Rolle "Admin" Benutzer erstellen / bearbeiten / löschen können. Ich habe gerade ein Problem, bei dem die Aktion Bearbeiten den Benutzer nicht aktualisiert. Alles funktioniert ordnungsgemäß, wenn ich manuell die Aktionen auf der Website selbst durchführe, aber die Tests den Benutzer nicht aktualisieren.
Hier ist meine Spezifikation:
%Vor%Der Fehler, den ich bekomme, ist:
%Vor%Wenn ich die letzten paar Zeilen des Tests ändere:
%Vor% Dann ist der Test erfolgreich. Dies scheint nicht richtig zu sein, da die Seite "John Changed" nicht anzeigen sollte, wenn user_to_edit
nicht aktualisiert wurde.
Meine Delete-Anforderungsspezifikation funktioniert einwandfrei:
%Vor%Ich habe ein Benutzermodell:
%Vor%Ich habe diese Fabrik:
%Vor%Ich habe diese Aktionen in meinem Benutzercontroller:
%Vor% Die Datei routes.rb
ist ebenfalls relevant, da ich Devise verwende und einen benutzerdefinierten Benutzer-Controller habe:
Sie werden getäuscht, wie schlaue Test-Frameworks aussehen :)
sicherlich erwarten Sie, dass sich der db-Eintrag für user_to_edit
ändert. user_to_edit
ist eine lokale Variable, so dass sich user_to_edit.last_name
nicht ändert, egal welche Schaltflächen Sie anklicken. Versuchen Sie es mit { user_to_edit.reload.last_name }
Tags und Links ruby-on-rails capybara devise cancan rspec-rails