[RUBY] [Rails] Comment définir des macros dans Rspec et standardiser le traitement

Cible

Rendez le processus de connexion commun.

Environnement de développement

・ Rubis: 2.5.7 Rails: 5.2.4 ・ Rspec-rails: 4.0.1 ・ Vagrant: 2.2.7 -VirtualBox: 6.1 ・ Système d'exploitation: macOS Catalina

la mise en oeuvre

1. Créez un répertoire support

$ mkdir support

2. Créez et éditez un fichier dans le répertoire support

$ touch spec/support/login_macros.rb

login_macros.rb


module LoginMacros
  def login(user)
    fill_in 'adresse mail', with: user.email
    fill_in 'mot de passe', with: user.password
    click_button 'S'identifier'
  end
end

3. Editez rails_helper.rb

rails_helper.rb


#Commentez la ligne 23
Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }

RSpec.configure do |config|
  config.include LoginMacros #Postscript
end

[Explication]

① Lisez le répertoire support.

Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }

(2) Rendre disponible le module défini dans «2».

config.include LoginMacros

4. Utilisez la méthode

require 'rails_helper'

RSpec.describe 'Test de certification', type: :feature do
  let(:user) { create(:user) }
  subject { page }

  describe 'Test d'authentification de l'utilisateur' do
    context 'Test de connexion utilisateur' do
      it 'Être capable de se connecter' do
        visit new_user_session_path
        login(user) #Utiliser la méthode
        is_expected.to have_content 'Se déconnecter'
      end
    end
  end
end

Recommended Posts

[Rails] Comment définir des macros dans Rspec et standardiser le traitement
Comment installer jQuery dans Rails 6
Comment installer Swiper in Rails
[Webpacker] Résumé de l'installation de Bootstrap et jQuery dans Rails 6.0
Comment supprimer de grandes quantités de données dans Rails et problèmes
Comment implémenter la fonctionnalité de recherche dans Rails
Comment changer le nom de l'application dans les rails
Comment insérer une vidéo dans Rails
Comment normaliser le pied de page d'en-tête dans Thymeleaf
Comment utiliser MySQL dans le didacticiel Rails
[rails] Comment configurer le routage dans les ressources
Comment implémenter la fonctionnalité de classement dans Rails
Comment implémenter le traitement asynchrone dans Outsystems
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment déboguer le traitement dans le modèle Ruby on Rails avec juste la console
[Rails] Comment utiliser les boîtes de sélection dans Ransack
Comment traduire Rails en japonais en général
Comment séparer .scss par contrôleur dans Rails
Comment ajouter conditionnellement une classe html.erb dans Rails
Comment implémenter une fonctionnalité similaire dans Rails
Comment créer facilement un pull-down avec des rails
Comment utiliser la portée et le traitement des passes (servist)
Comment utiliser JQuery dans Rails 6 js.erb
Comment créer une API avec GraphQL et Rails
[Rails] Comment émettre des messages de réussite et d'erreur
Comment définir plusieurs orm.xml dans Spring4, JPA2.1
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
Comment vérifier les commandes Rails dans le terminal
Comment écrire des rails
Comment désinstaller Rails
Comment rendre une image partiellement transparente avec le traitement
Comment implémenter la connexion invité en 5 minutes sur le portefeuille de rails
Comment implémenter une fonctionnalité intéressante dans Ajax avec Rails
[Ruby on Rails] Comment écrire enum en japonais
Changer la date et l'heure en notation japonaise dans Rails
[Ruby On Rails] Comment réinitialiser DB dans Heroku
[Comment insérer une vidéo dans un hameau avec Rails]
Comment écrire une recherche de comparaison de dates dans Rails
Je souhaite définir une fonction dans la console Rails
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment gérer les fichiers TSV et les fichiers CSV dans Ruby
Comment interroger Array dans jsonb avec Rails + postgres
[Rails 6] Comment définir une image d'arrière-plan dans Rails [CSS]
[Rails] Comment modifier et personnaliser les vues et les contrôleurs de conception
[Rails] Comment charger JavaScript dans une vue spécifique
(Ruby on Rails6) Comment créer un modèle et une table
Comment lancer Swagger UI et Swagger Editor dans Docker
[Rails] Comment afficher les images dans la vue
[Java] Comment obtenir la clé et la valeur stockées dans Map par traitement itératif
Comment implémenter une image de profil circulaire avec CarrierWave et R Magick in Rails
[rails] Comment publier des images