[RUBY] [RSpec] Testen von Fehlermeldungen, die unabhängig von Shoulda-Matchers festgelegt wurden

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.

Was sind eigentlich Matcher?

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.

Wenn Sie Ihre eigene Fehlermeldung testen möchten

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

Vielen Dank für das Lesen bis zum Ende!

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

[RSpec] Testen von Fehlermeldungen, die unabhängig von Shoulda-Matchers festgelegt wurden
[R Spec on Rails] So schreiben Sie Testcode für Anfänger von Anfängern
So zeigen Sie Fehlermeldungen auf Japanisch an
[Rails] So geben Sie Erfolgs- und Fehlermeldungen aus
Stellen Sie RSpec auf DRY
So legen Sie Nginx von Docker fest
So legen Sie Java-Konstanten fest
So löschen Sie das Testbild, nachdem Sie den Rspec-Test mit CarrierWave ausgeführt haben
[Rails / RSpec] Der Umgang mit Elementen weist einen Größenfehler von Null auf
So führen Sie einen Komponententest für Spring AOP durch
[Rails] Verwendung von Flash-Nachrichten
So stellen Sie Spring Boot + PostgreSQL ein
Anzeigen von Fehlermeldungen und Erfolgsmeldungen bei der Registrierung als Benutzer
So legen Sie verschiedene Quell- / Zielversionen für Produktionscode und Testcode fest
So verhindern Sie die doppelte Verarbeitung durch addEventListener
Ich möchte doppelte Fehlermeldungen beseitigen
So filtern Sie den JUnit-Test in Gradle
So löschen Sie die Fehlerbündelung
[Hinweis] Erste Schritte mit Rspec
So richten Sie kapt ein und verwenden es
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
So testen Sie den privaten Bereich mit JUnit
Benötigt für iOS 14? So legen Sie NSUserTrackingUsageDescription fest
[SpringBoot] So schreiben Sie einen Controller-Test
[Rails] So bestimmen Sie das Ziel anhand von "Rails-Routen"
So finden Sie die Ursache des Ruby-Fehlers
[Java] So testen Sie, ob es in JUnit null ist
Der Weg zur Japanisierung von Rails führt zu Fehlermeldungen
So testen Sie Interrupts während Thread.sleep mit JUnit
So geben Sie die von Rails erstellte CSV in S3 aus
JUnit 5: Wie man Testfälle in enum schreibt
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
So trennen Sie .scss nach Controller in Rails
So richten Sie jEnv (Mac) ein und bedienen es
Einführung von Rspec und japanischer Lokalisierung von Fehlermeldungen
So richten Sie JavaED Full Edition (Plejaden) ein
So schreiben Sie Testcode mit Basic-Zertifizierung
Verwendung von Wissen zur Reduzierung der Supportarbeit um 10 bis 20%
Spring Boot - So stellen Sie das Sitzungszeitlimit ein
[Rails] Lösung, wenn bei Verwendung von Capybara mit Rspec der Fehler "undefined method` visit '" angezeigt wird