Wir migrieren von Rails 3.2.12 nach 4.0.2 und Ruby 1.9.3 nach 2.1.8.
Wir haben eine große Testabdeckung, um die Migration in Form von RSpec durchzuführen.
Eine der Spezifikationen, die überprüft, ob eine Eindeutigkeitsprüfung für ein Kartenmodell fehlschlägt.
%Vor% Wo ein program_member
möglicherweise nur eine mobile: true
Karte hat.
Die Spezifikation erstellt 2 Karten für das Mitglied, verwandelt eins in eine mobile Karte und erwartet dann die Bestätigung der Bestätigung mit der zweiten Karte.
%Vor%Erwartung:
%Vor% Wenn ich in unseren Zweig master
gehe, wird diese Spezifikation übergeben.
Der einzige Faktor, der sich von dieser Spezifikation zu einem Fehler geändert hat, ist die Migration von Rails 3 nach 4.
Ich habe versucht, den Spec-Code in der Konsole auszuführen, nur um zu sehen, dass das Mitglied zwei mobile Karten hat und% card.valid?
gibt für beide Instanzen true
zurück.
Hat sich in Rails 4 in Bezug auf die Eindeutigkeitsprüfung oder den Lebenszyklus der Validierung etwas geändert?
Okay, ich bin auf etwas.
Ich habe ein Testprojekt mit der gleichen Ruby- und Rails-Version erstellt.
In diesem Projekt würde ich ein User
-Modell haben, das eine admin
-Spalte als Boolean mit einer ähnlichen Validierung hat.
Ich habe shofa-matchers und rspec verwendet, um das gewünschte Ergebnis zu beschreiben.
%Vor%Die Spezifikation ist mit der folgenden Ausgabe fehlgeschlagen:
%Vor%Ich entschied, dass der Code gut war und Rails genau nach 4.1.0 stieß.
Die Spezifikation wurde übergeben!
%Vor%Tags und Links ruby ruby-on-rails rspec validation