[RUBY] Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 3 RSpec. FactoryBot wird eingeführt und ein Post-Modell erstellt

Erstellen einer Bulletin Board-API mit Zertifizierungsberechtigung in Rails 6 # 2 Git und Rubocop eingeführt

Installation von RSpec, FactoryBot

Aus der Fortsetzung des letzten Males. Enthält die zum Testen verwendeten RSpec und FactoryBot.

Gemfile


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

Nachdem es installiert wurde, initialisieren Sie es.

$ 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

Wenn in Zukunft ein Modell oder eine Steuerung generiert wird, steuert es die RSpec, die automatisch zusammen generiert wird. Ich werde nur das Modell verwenden und darum bitten, den Test auf ein Minimum zu beschränken. Setzen Sie also nichts anderes.

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
...

Stellen Sie als Nächstes FactoryBot so ein, dass die Methode verwendet werden kann, ohne eine Klasse in RSpec zu schreiben.

spec/rails_helper.rb


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

Referenz: Verfahren zum Installieren von Rspec und Factory_bot in der Rails-App

Führen Sie zu diesem Zeitpunkt rubocop aus, um den Fehler zu beseitigen. Wenn der Fehler Null wird, geben Sie git commit ein. Beachten Sie, dass -a in rubocop -a ein Befehl ist, der automatisch Dinge korrigiert, die automatisch korrigiert werden können. Wenn Sie also beim ersten Mal eine große Anzahl von Fehlern erhalten und diese erneut verschieben, sollte die Anzahl nach der automatischen Korrektur sofort abnehmen.

Generierung nach dem Modell

Die Vorbereitung war sehr lang, aber jetzt, da wir bereit sind, werden wir ein Modell machen.

$ rails g model Post subject:string body:text

Wenn Sie diesen Befehl ausführen, werden 4 Dateien mit Modell, Migration, Spezifikation und Factory_bot angezeigt. Wird generiert.

$ rails db:migrate

Wenn zur Laufzeit der folgende Fehler angezeigt wird, wird postgres gestoppt und gestartet.

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

Setzen Sie hebeln

Wenn Sie den Befehl Rails Console ausführen, kann pry mehr als nur Standard-IRB.

Gemfile


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

Versuchen Sie, den Beitrag in der Rails-Konsole zu speichern

Die Implementierung bis zur Steuerung und die Überprüfung des Vorgangs dauert einige Zeit. Versuchen Sie daher zu prüfen, ob das Modell mit der Rails-Konsole gespeichert und in die Datenbank geladen werden kann.

$ 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>]

Ich habe einen Beitrag in [1] gespeichert und alles in [2] erhalten. Anscheinend können Sie normal erstellen und lesen.

Fortsetzung

Erstellen einer Bulletin Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 4 nach Validierung, Testimplementierung

[Zur Serialisierungstabelle]

Recommended Posts

Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 3 RSpec. FactoryBot wird eingeführt und ein Post-Modell erstellt
Erstellen Sie eine Bulletin-Board-API mit Zertifizierung und Autorisierung mit Rails 6 # 1 Environment Construction
Erstellen Sie eine Bulletin-Board-API mit Autorisierung in Rails 6 # 12 Assoziation von Benutzer und Beitrag
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 2 Einführung in Git und Rubocop
Erstellen Sie eine Bulletin-Board-API mit Autorisierung in Rails 6 # 11. Benutzermodelltest und Validierung hinzugefügt
Erstellen Sie eine Bulletin Board-API mit Zertifizierungsberechtigung in Rails 6 # 13 Grant-Authentifizierungsheader
Einführung des Serializers Nr. 9 zum Erstellen einer Bulletin-Board-API mit Zertifizierung und Autorisierung in Rails 6
Einführung des Experten Nr. 15 zum Erstellen einer Bulletin-Board-API mit Zertifizierung und Autorisierung in Rails 6
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 17. Fügen Sie Administratorrechte hinzu
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 14 Seed. Anzeige der Ausführungszeit
# 16 Richtlinieneinstellung zum Erstellen einer Bulletin Board-API mit Zertifizierungsberechtigung in Rails 6
# 8 Seed-Implementierung zum Erstellen einer Bulletin Board-API mit Zertifizierungsautorisierung in Rails 6
Erstellen Sie eine Bulletin Board-API mit Zertifizierung und Autorisierung in Rails 6 # 6. Zeigen Sie, erstellen Sie die Implementierung
Erstellen Sie eine Bulletin Board-API mit Zertifizierungsberechtigung im Rails 6 # 7-Update und zerstören Sie die Implementierung
So erstellen Sie eine API mit GraphQL und Rails
Ich habe versucht, die Rails-API mit TDD von RSpec zu implementieren. Teil2 -Benutzerauthentifizierung-
Ich habe versucht, die Rails-API mit TDD von RSpec zu implementieren. Teil3-Aktionsimplementierung mit Authentifizierung
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Ich habe versucht, die Rails-API mit TDD von RSpec zu implementieren. Teil1-Aktionsimplementierung ohne Authentifizierung-
[Ruby on Rails] Modelltest mit RSpec
Hinweis beim Erstellen einer Viele-zu-Viele-Factory mit Rspec und Testen mit SystemSpec [RSpec, FactoryBot]
Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
[Rails] [Docker] Kopieren und Einfügen ist in Ordnung! So erstellen Sie eine Rails-Entwicklungsumgebung mit Docker