Als ich eine benutzerdefinierte Nachricht mit Shoulda-Matchern validierte, wusste ich nicht, wie ich sie schreiben sollte, also stecke ich ein wenig fest, also werde ich sie hier teilen.
Shoulda-Matcher sind Juwelen, die es einfacher machen, lange Tests durchzuführen, wenn sie in regulärem RSpec geschrieben sind.
Angenommen, Sie haben ein Modell mit den folgenden Validierungen.
user.rb
class User < ApplicationRecord
validates :nickname, presence: true, length: { maximum: 30 }
end
Dieser Test läuft in einer Zeile wie folgt ab:
spec/models/user_spec.rb
it { is_expected.to validate_length_of(:nickname).is_at_most(30) }
Es ist sehr praktisch.
Angenommen, Sie richten eine Validierung mit Ihrer eigenen Fehlermeldung ein:
user.rb
validates :email, presence: { message: 'Ist nicht enthalten' }
Wenn Sie überprüfen möchten, ob gleichzeitig mit der Validierung Ihre eigene Fehlermeldung angezeigt wird
spec/models/user_spec.rb
it { should validate_presence_of(:email). with_message('Ist nicht enthalten') }
Wenn Sie so schreiben, können Sie gleichzeitig Ihre eigene Fehlermeldung und Validierung überprüfen.
Es gibt viele andere Möglichkeiten, es zu verwenden. Wenn Sie interessiert sind, lesen Sie dies bitte. Die Einführungsmethode ist ebenfalls geschrieben. Shoulda-Matchers READ ME
Ich gebe aus, was ich jeden Tag gelernt habe! Wenn Sie Vorschläge haben, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten!
Recommended Posts