[RUBY] [RSpec] Comment tester les messages d'erreur définis indépendamment par Shoulda-Matchers

Lorsque j'ai validé un message personnalisé à l'aide de shoulda-matchers, je ne savais pas comment l'écrire, donc je suis un peu coincé, donc je vais le partager ici.

Que sont les shoulda-matchers?

Les shoulda-matchers sont des gemmes qui facilitent l'exécution de longs tests lorsqu'ils sont écrits dans RSpec standard.

Par exemple, supposons que vous ayez un modèle avec les validations suivantes.

user.rb


class User < ApplicationRecord
  validates :nickname, presence: true, length: { maximum: 30 }
end

Ce test s'exécute sur une ligne comme suit:

spec/models/user_spec.rb


it { is_expected.to validate_length_of(:nickname).is_at_most(30) }

C'est assez pratique.

Si vous souhaitez tester votre propre message d'erreur

Par exemple, supposons que vous configuriez une validation avec votre propre message d'erreur:

user.rb


validates :email, presence: { message: 'N'est pas inclu' }

Si vous souhaitez vérifier si votre propre message d'erreur s'affiche en même temps que la validation

spec/models/user_spec.rb


it { should validate_presence_of(:email). with_message('N'est pas inclu') }

En écrivant comme ceci, vous pouvez vérifier votre propre message d'erreur et votre validation en même temps.

Il existe de nombreuses autres façons de l'utiliser, donc si vous êtes intéressé, veuillez lire ceci. La méthode d'introduction est également écrite. Shoulda-Matchers READ ME

Merci d'avoir lu jusqu'au bout!

Je sort ce que j'ai appris tous les jours! Si vous avez des suggestions, je vous serais reconnaissant de bien vouloir commenter!

Recommended Posts

[RSpec] Comment tester les messages d'erreur définis indépendamment par Shoulda-Matchers
[R Spec on Rails] Comment écrire du code de test pour les débutants par les débutants
Comment afficher les messages d'erreur en japonais
[Rails] Comment émettre des messages de réussite et d'erreur
Réglez RSpec sur DRY
Comment définir nginx de Docker
Comment définir des constantes Java
Comment effacer l'image de test après avoir exécuté le test Rspec à l'aide de CarrierWave
[Rails / RSpec] Comment traiter l'élément a une erreur de taille nulle
Comment faire un test unitaire de Spring AOP
[Rails] Comment utiliser les messages flash
Comment configurer Spring Boot + PostgreSQL
Comment afficher les messages d'erreur et les messages de réussite lors de l'inscription en tant qu'utilisateur
Comment définir différentes versions source / cible pour le code de production et le code de test
Comment éviter le traitement en double par addEventListener
Je souhaite éliminer les messages d'erreur en double
Comment filtrer JUnit Test dans Gradle
Comment désactiver le regroupement d'erreurs
[Note] Comment démarrer avec Rspec
Comment configurer et utiliser kapt
[Java] Comment régler la date sur 00:00:00
Comment tester l'étendue privée avec JUnit
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
[SpringBoot] Comment écrire un test de contrôleur
[Rails] Comment décider de la destination par "voies ferrées"
Comment trouver la cause de l'erreur Ruby
[Java] Comment tester s'il est nul dans JUnit
La route vers la japonaisisation des rails conçoit des messages d'erreur
Comment tester les interruptions pendant Thread.sleep avec JUnit
Comment sortir le CSV créé par Rails vers S3
JUnit 5: Comment écrire des cas de test dans enum
[Java] (pour MacOS) Méthode de définition du chemin de classe
Comment séparer .scss par contrôleur dans Rails
Comment configurer et utiliser jEnv (Mac)
Introduction de Rspec et de la localisation japonaise des messages d'erreur
Comment configurer JavaED Full Edition (pléiades)
Comment écrire du code de test avec la certification de base
Comment utiliser les connaissances pour réduire le travail d'assistance de 10 à 20%
Spring Boot - Comment définir le délai d'expiration de la session
[Rails] Solution lorsque l'erreur "visite de la méthode non définie" "apparaît lors de l'utilisation de Capybara avec Rspec