[Rails] Testcode mit Rspec

Einführung

Ich werde Rspec einführen und Testcode schreiben. Der Befehl verwendet den Befehl der Docker-Umgebung.

Wir stellen vor: Gem

group :development, :test do
  gem 'rspec-rails'
  gem 'factory_bot_rails'
  gem 'faker', "~> 2.8"
end

docker-compose run web bundle install docker-compose build Die Installation ist abgeschlossen.

Rspec-Einstellungen

docker-compose run webrails g rspec:install Wenn der obige Befehl ausgeführt wird, wird die folgende Datei generiert.

create  .rspec
create  spec
create  spec/spec_helper.rb
create  spec/rails_helper.rb
.rspc
--format documentation

Codeerstellung

spec/models/user_spec.rb


require 'rails_helper'

describe User do
  describe '#create' do

    it "Benutzername und E-Mail,Passwort und Passwort_Wenn eine Bestätigung vorliegt, können Sie sich registrieren" do
      user = build(:user)
      expect(user).to be_valid
    end

    it  "Ohne Benutzername kann nicht registriert werden" do 
      user = build(:user, username: nil)
      user.valid?
      expect(user.errors[:username]).to include("can't be blank")
    end

    it  "Ohne E-Mail kann nicht registriert werden" do 
      user = build(:user, email: nil)
      user.valid?
      expect(user.errors[:email]).to include("can't be blank")
    end

    it  "Ohne Passwort kann nicht registriert werden" do 
      user = build(:user, password: nil)
      user.valid?
      expect(user.errors[:password]).to include("can't be blank")
    end

    it  "Passwort auch wenn Passwort existiert_Kann nicht ohne Bestätigung registriert werden" do 
      user = build(:user, password_confirmation: "")
      user.valid?
      expect(user.errors[:password_confirmation]).to include("doesn't match Password")
    end

    it  "Kann nicht registriert werden, wenn doppelte E-Mails vorhanden sind" do
      user = create(:user)
      another_user = build(:user, email: user.email)
      another_user.valid?
      expect(another_user.errors[:email]).to include("has already been taken")
    end

    it  "Sie können sich registrieren, wenn das Passwort aus 6 Zeichen oder mehr besteht" do
      user = build(:user, password: "000000", password_confirmation: "000000")
      expect(user).to be_valid
    end

    it  "Kann nicht registriert werden, wenn das Passwort 5 Zeichen oder weniger enthält" do
      user = build(:user, password: "00000", password_confirmation: "00000")
      user.valid?
      expect(user.errors[:password]).to include("is too short (minimum is 6 characters)")
    end:grin:

  end
end

spec/factories/users.rb


FactoryBot.define do
  factory :user do
    username                 {"aaa"}
    password                 {"000000"}
    password_confirmation    {"000000"}
    sequence(:email)     {Faker::Internet.email}
  end
end

docker-compose run web bundle exec rspec

8 examples, 0 failures

In diesem Fall wurde der Test erfolgreich bestanden.

abschließend

Dieses Mal habe ich den Test mit Rspec eingegeben. Wir werden den Controller auch in Zukunft testen. Vielen Dank für das Lesen bis zum Ende: grinsen:

Recommended Posts

[Rails] Testcode mit Rspec
Ausführung des RSpec-Testcodes
[Schienen] Test mit RSpec
[Rails] Informationen zum Rspec-Antworttest
[Rails / RSpec] Schreiben Sie einen Modelltest (mit Shoulda Matchers / FactoryBot)
Bild-Upload mit CarrierWave ~ Rspec-Test ~
[Rails5] Rspec -Einheitentest beim Verschachteln-
[RSpec] Unit Test (mit gem: factory_bot)
[Schienen] Machen wir einen Unit-Test mit Rspec!
[Rails] Unit-Testcode für das Benutzermodell
[Ruby on Rails] Test mit RSpec anzeigen
[Ruby on Rails] Codeprüfung mit Rubocop-Airbnb
[R Spec on Rails] So schreiben Sie Testcode für Anfänger von Anfängern
Verstehen Sie die Codeabdeckung mit Rspec, dem Ruby on Rails-Testframework
[Ruby on Rails] Controller-Test mit RSpec
Rspec Basics [Rails]
[Ruby on Rails] Modelltest mit RSpec
[Rails5] Rspec -validierung-
Einführung in Rspec, ein Testframework für Ruby on Rails
Testcode mit Mock mit JUnit (EasyMock Center)
[Lernen / Ausgeben von Testcode]
[Ruby On Rails] Testfehler mit RSpec MySQL-Client ist nicht verbunden
Testen Sie Nokogiri mit Rspec.
Schienen, RSpec-Installationsverfahren
[Schienen] Von der Testvorbereitung zum Modelleinheitentest [RSpec]
Verfahren zur Erstellung des RSpec-Unit-Testcodes (Login User Creation Ver.)
Rails5 Rspec-Testfehler ArgumentError: Werkseitig nicht registriert: Benutzer
Ich habe einen Unit-Test der Rails-Anwendung mit RSpec und FactoryBot versucht
SNS-Authentifizierung mit Rails Google
[RSpec] Verwenden Sie WebMock, um die Logik mithilfe einer externen API zu testen
Wovon ich süchtig war, als ich rspec auf Schienen benutzte
[RSpec] Verwenden wir FactoryBot [Rails]
Japanisieren Sie mit i18n mit Rails
[Rails] Japanische Lokalisierung mit Rails-i18n
Testen Sie Active Strage mit RSpec
Sammlung von Java-Testcode-Methoden
Unit-Test der Architektur mit ArchUnit
Testen Sie den GraphQL-Resolver mit rspec
[Rails] Integrationstest mit Capybara (von der Einführung bis zur einfachen Testausführung)
Fehler bei der Verwendung von Schienen Capybara
[Rails] Versuchen Sie, Faradays Middleware zu verwenden
Detaillierte Tipps zur Verwendung von Rails
[Rails 6] Sternförmige Überprüfung mit Raty.js
[Challenge CircleCI von 0] Erstellen Sie einen automatisierten Test (Rails6.0, mysql8.0, Rspec)
Hinweise zum Generieren von Dummy-Daten für Kennwörter im Unit-Testcode des Rails-Modells
[Hidden_field] Sende Informationen mit Rails hidden_field !!!!
Rails 5 Code Reading Teil 2 ~ Aktionsansicht ~