Présentation de Rspec avec Ruby on Rails x Docker

Cible

--rails6 × Je veux installer rspec dans un environnement docker

supposition

procédure

1. Ajouter une gemme à Gemfile

Ajoutez la gemme suivante à: develop ,: test gem "rspec-rails" gem "factory_bot_rails"

Gemfile


group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  #Cadre de test
  gem "rspec-rails"
  gem "factory_bot_rails"
end

2. Installez rspec à partir d'un terminal différent de celui exécutant le serveur

MacBook-Nom de l'application Air% docker-compose run web rails g rspec:install
Nom de l'application de départ_db_1 ... done
Running via Spring preloader in process 64
      create  .rspec
      create  spec
      create  spec/spec_helper.rb
      create  spec/rails_helper.rb

Cela créera un fichier de configuration dans le répertoire de votre application

Créons un test à la fois

Pour écrire la spécification du modèle, essayez de le générer avec le générateur

Tout d'abord, les fichiers associés sont générés automatiquement avec la commande suivante. modèle est son propre modèle.

MacBook-Nom de l'application Air% docker-compose run web rails g rspec:modèle Nom du modèle
Nom de l'application de départ_db_1 ... done
Running via Spring preloader in process 64
      create  spec/models/reception_spec.rb
      invoke  factory_bot
      create    spec/factories/receptions.rb

Si vous pouvez le générer, écrivez un test de validation cette fois

spec/factories/reception.rb


FactoryBot.define do
  factory :reception do
    name {"Exemple de visiteur 1"}
    purpose {"entretien"}
    organization {"Sample Co., Ltd."}
  end
end

spec/models/reception_spec.rb


RSpec.describe Reception, type: :model do
  reception = FactoryBot.create(:reception)

  it 'instance de réception activée' do
    expect(reception).to be_valid
  end
end

Après avoir ajouté la spécification,

MacBook-Nom de l'application Air% docker-compose run web bundle exec rspec

Exécution terminée avec

MacBook-Nom de l'application Air% docker-compose run web bundle exec rspec
Nom de l'application de départ_db_1 ... done
.

Finished in 0.22889 seconds (files took 6.32 seconds to load)
1 example, 0 failures

Ecrire une spécification de demande (test API)

Avant d'écrire la spécification de la requête, générez les fichiers nécessaires avec le générateur.

docker-compose run web rails g rspec:demande le nom du contrôleur/Nom du modèle
Starting heytaisho_db_1 ... done
Running via Spring preloader in process 66
      create  spec/requests/receptions_spec.rb

Ouvrez et modifiez le fichier généré

Les références

https://qiita.com/Ushinji/items/522ed01c9c14b680222c

Recommended Posts

Présentation de Rspec avec Ruby on Rails x Docker
[Ruby on Rails] Test du contrôleur avec RSpec
[Ruby on Rails] Test de modèle avec RSpec
Présentation de Rspec, un framework de test pour Ruby on Rails
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Exécutez des tests Ruby on Rails RSpec avec des actions GitHub
Remarques sur l'utilisation de FCM avec Ruby on Rails
Création d'un environnement de développement pour Ruby on Rails à l'aide de Docker + VSCode (Remote Container)
Comprendre la couverture du code avec Rspec, le framework de test Ruby on Rails
Docker x Rails 6 (Mémo)
Publiez l'application avec ruby on rails
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Intégrez Docker à votre portefeuille Ruby on Rails!
[Rails] Test avec RSpec
[Rails] Procédure de liaison de bases de données avec Ruby On Rails
Association Ruby On Rails
Déterminez la page actuelle avec Ruby on Rails
[Ruby on Rails] Téléversement de plusieurs images avec refile
J'ai fait un portfolio avec Ruby On Rails
[Ruby on Rails] Supprimer les images s3 avec Active Strage
Erreur rencontrée avec les notes lors du déploiement de docker sur des rails
Environnement Build Rails (API) x MySQL x Nuxt.js avec Docker
Création d'un plan de site au format RSS / Atom avec Ruby on Rails
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
Record d'apprentissage Ruby on rails-2020.10.07 ②
Exécuter des rails à chaque fois dans le docker
[Docker] Construction de l'environnement Rails 5.2 avec docker
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
Record d'apprentissage de Ruby on rails -2020.10.06
Résumé de la validation Ruby on Rails
Mémorandum de base Ruby on Rails
[Docker] À utiliser à tout moment avec Docker + Rails
J'ai essayé d'installer le plugin lié à Ruby on Rails avec vim-plug
[Ruby on Rails] Ajouter une colonne avec des contraintes de clé externe
[Ruby on Rails] Implémenter la fonction de connexion par add_token_to_users avec l'API