[RUBY] Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 3 RSpec, FactoryBot introduit et post-modèle

Création d'une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 2 git et rubocop introduites

Installation de RSpec, FactoryBot

De la suite de la dernière fois. Contient le RSpec et le FactoryBot utilisés pour les tests.

Gemfile


 group :development, :test do
+  gem "rspec-rails"
+  gem "factory_bot_rails"
 end
$ bundle

Maintenant qu'il est installé, initialisez-le.

$ rails g rspec:install
...
Running via Spring preloader in process 6770
      create  .rspec
      create  spec
      create  spec/spec_helper.rb
      create  spec/rails_helper.rb

Il contrôle le RSpec qui est automatiquement généré lorsqu'un modèle ou un contrôleur est généré à l'avenir. Je vais utiliser uniquement le modèle et la demande de garder le test au minimum, donc défini pour ne rien utiliser d'autre.

config/application.rb


  class Application < Rails::Application
...

+   config.generators do |g|
+     g.test_framework :rspec, 
+       view_specs: false, 
+       helper_specs: false, 
+       controller_specs: false, 
+       routing_specs: false
+   end
  end
...

Ensuite, définissez FactoryBot pour que la méthode puisse être utilisée sans écrire de classe dans RSpec.

spec/rails_helper.rb


 RSpec.configure do |config|
+  config.include FactoryBot::Syntax::Methods
...

Référence: Procédure d'installation de Rspec et Factory_bot dans l'application Rails

À ce stade, exécutez rubocop pour éliminer l'erreur, et lorsque l'erreur devient zéro, git commit. Notez que -a dans rubocop -a est une commande qui corrige automatiquement les choses qui peuvent être automatiquement corrigées, donc si vous obtenez un grand nombre d'erreurs la première fois, si vous le déplacez à nouveau, le nombre devrait diminuer immédiatement après la correction automatique.

post génération du modèle

La préparation a été très longue, mais maintenant que nous sommes prêts, nous allons faire un modèle.

$ rails g model Post subject:string body:text

Lorsque vous exécutez cette commande, 4 fichiers de model, migration, spec et factory_bot seront affichés. Sera généré.

$ rails db:migrate

Si vous obtenez l'erreur suivante lors de l'exécution, postgres est arrêté et démarrera.

rails aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql
...

$ sudo service postgresql95 start

Mettre le levier

Lors de l'exécution de la commande rails console, pry peut faire plus que l'irb standard.

Gemfile


group :development, :test do
+   gem "pry-rails"
+   gem "pry-byebug"
...
end
$ bundle

Essayez de sauvegarder le message dans la console des rails

Il faut du temps pour implémenter le contrôleur et vérifier le fonctionnement, alors essayez de voir si le modèle peut être enregistré et chargé dans la base de données avec la console des rails.

$ rails c
...
[1] pry(main)> Post.create!(subject: "hoge", body: "fuga")
[2] pry(main)> posts = Post.all
  Post Load (0.6ms)  SELECT "posts".* FROM "posts"
=> [#<Post:0x0000000006e89850
  id: 1,
  subject: "hoge",
  body: "fuga",
  created_at: Sat, 05 Sep 2020 13:50:01 UTC +00:00,
  updated_at: Sat, 05 Sep 2020 13:50:01 UTC +00:00>]

J'ai enregistré un message dans [1] et j'ai tout obtenu dans [2]. Apparemment, vous pouvez créer et lire normalement.

A continué

Création d'une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 4 après validation, implémentation de test

[Vers la table de sérialisation]

Recommended Posts

Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 3 RSpec, FactoryBot introduit et post-modèle
Créez une API de tableau d'affichage avec certification et autorisation avec Rails 6 # 1 Construction de l'environnement
Créer une API de tableau d'affichage avec autorisation dans Rails 6 # 12 Association d'utilisateur et de publication
Présentation de # 2 git et rubocop pour créer une API de tableau d'affichage avec autorisation d'authentification dans Rails
Créer une API de tableau d'affichage avec autorisation de certification dans Rails 6 # 11 Test et validation du modèle utilisateur ajoutés
Créer une API de tableau d'affichage avec autorisation de certification dans Rails 6 # 13 Accorder l'en-tête d'authentification
Présentation du sérialiseur n ° 9 pour créer une API de tableau d'affichage avec certification et autorisation dans Rails 6
Introduction de l'expert n ° 15 pour créer une API de tableau d'affichage avec certification et autorisation dans Rails 6
Créez une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 17 Ajoutez des privilèges d'administrateur
Construire une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 14 Seed Affichage du temps d'exécution
# 16 paramètre de stratégie pour créer une API de tableau d'affichage avec autorisation de certification dans Rails 6
Implémentation n ° 8 pour créer une API de tableau d'affichage avec autorisation de certification dans Rails 6
Créez une API de tableau d'affichage avec certification et autorisation dans Rails 6 # 6 show, créez une implémentation
Créer une API de tableau d'affichage avec autorisation de certification dans la mise à jour Rails 6 # 7, détruire l'implémentation
Comment créer une API avec GraphQL et Rails
J'ai essayé d'implémenter l'API Rails avec TDD par RSpec. part2 -authentification de l'utilisateur-
J'ai essayé d'implémenter l'API Rails avec TDD par RSpec. part3-Implémentation d'action avec authentification-
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
J'ai essayé d'implémenter l'API Rails avec TDD par RSpec. part1-Implémentation de l'action sans authentification-
[Ruby on Rails] Test de modèle avec RSpec
Remarque lors de la création d'une usine plusieurs-à-plusieurs avec Rspec et des tests avec SystemSpec [RSpec, FactoryBot]
Créez un tableau d'affichage simple avec Java + MySQL
[Rails] [Docker] Le copier-coller est OK! Comment créer un environnement de développement Rails avec Docker