[RUBY] [Rails5] Rspec -validation-

introduction

Cette fois, j'écrirai Rspec pour la validation du modèle

** ・ Il est valable si vous avez nom, email, mot de passe ** ** ・ Il est invalide s'il n'y a pas de nom, email, mot de passe **

Je voudrais tester les deux points ci-dessus.

1. Cible de test

validates :name,
       presence: true,   
validates :email,
       presence: true,   
validates  :password,
       presence: true,

La cible du test est la validation au moment de l'inscription de l'utilisateur. Cette fois, je souhaite vérifier uniquement la validité de la validation, j'utiliserai donc un code simple comme ci-dessus.

2. Mise en œuvre

require 'rails_helper'

Rspec.decribe User, type: model do
  describe '#validates' do
    context 'Si le nom, l'adresse e-mail et le mot de passe sont corrects' do
      it 'Soyez valide'  do
        @user = User.new ({
          name: "Tester Taro",
          email: "[email protected]",
          password: "111111",
        })
        expect(@user).to be_valid
      end   
    end

    context 'Si le nom, l'adresse e-mail et le mot de passe sont incorrects' do
      it 'À valider' do
        @user = User.new ({
          name: "",
          email: "",
          password: "",
        })
        expect(@user.valid?).to be_falsy
      end
    end
  end
end

Attribuez respectivement les objets corrects et incorrects aux variables d'instance.

J'utilise ** be_valid ** (predicut matcher) pour tester si validationg est valide, et ** be_falsy ** pour m'assurer que false est renvoyé lorsqu'il n'est pas valide. ..

*** Je veux voir que les crochets ondulés immédiatement après la nouvelle méthode lors de la création d'un objet doivent être attribués à value et les crochets doivent être donnés à chaque clé. Personnellement, je suis un peu en forme. ** **

3. Résultat du test

2 examples, 0 failures

** Tu es passé. ** **

J'ai senti que la Rspec à valider était facile à comprendre car elle pouvait être décrite simplement.

finalement

Cette fois, j'ai tout mis en œuvre ensemble, mais je pense qu'il est nécessaire d'exécuter le test pour chaque colonne.

Aussi, quand j'ai frappé le code, j'ai pensé que j'utilisais chaque parenthèse ** () {} [] ** avec un sens, donc j'ai senti que j'avais besoin de le comprendre à nouveau. J'aimerais réécrire un article.

ps→ Il semble que les alevins d'anguilles japonaises viennent d'Australie sur le courant marin.

Recommended Posts

[Rails5] Rspec -validation-
Principes de base de Rspec [Rails]
[Rails] Personnaliser la validation de l'appareil
[Rails] Test avec RSpec
Rails, procédure d'installation RSpec
[Rails] Le nom de famille japonais le plus long (validation)
[RSpec] Utilisons FactoryBot [Rails]
[Rails] Comment utiliser la validation
[Rails] À propos du test de réponse Rspec
[Rails] Erreur de validation inattendue dans l'appareil
Présentation de l'application de révision de livres Rails RSpec
[Rails] Paramètres de validation et localisation en japonais
[Rails5] Rspec -Test d'unité lors de l'imbrication-
[rails] Faisons un test unitaire avec Rspec!
[Rails g. Erreur]
Notions de base sur les rails
API Rails
Migration des rails
[Rails] first_or_initialize
[Ruby on Rails] Afficher le test avec RSpec
Introduction de RSpec
rails tutry
RSpec-Testing "validation des utilisateurs"
À propos des rails 6
Fondation Rails
Mémorandum Rails
[Rails] Utiliser la validation sur un contrôleur spécifique
rails tutry
Installation de RSpec
tutoriel sur les rails
[Ruby on Rails] Test du contrôleur avec RSpec
Configuration RSpec
Rspec, TDD (1)
[Rails] concevoir
rails tutry
tutoriel sur les rails
[Rails] Mise en œuvre de la validation qui maintient l'unicité
Conseils de rails
méthode des rails
tutoriel sur les rails
Validation des rails et null: fausses notes personnelles
Rails Revue 2
Paramètres de validation pour la fonction de connexion Ruby on Rails
[Ruby on Rails] Jusqu'à l'introduction de RSpec
Présentation de Rspec avec Ruby on Rails x Docker
Présentation de Rspec, un framework de test pour Ruby on Rails
[Validation] rails Comment spécifier après la date d'aujourd'hui
Les débutants de Rails ont essayé de se lancer avec RSpec