[RUBY] Ich möchte beim Schreiben von Testcode zufällig Informationen generieren

【Überblick】

1. Schlussfolgerung </ b>

2. Installationsmethode </ b>

3. Wie schreibe ich Spitznamen, E-Mail, Passwort </ b>

4. Eine andere Art zu schreiben </ b>

Ergänzung: So schreiben Sie Datum / Nachname / Vorname (Kanji und Katakana) </ b>


1. Fazit ---------------------------------------- Setzen Sie gem "faker" in gemfile ein und bündeln Sie die Installation. Erstellen Sie dann einen Facroies-Ordner im Spezifikationsordner, erstellen Sie die zu beschreibende Datei und programmieren Sie sie.
  1. Installationsmethode

  • Ich werde die Einführung von Edelstein "rspec-Rails" und Edelstein "factory_bot_rails" hier weglassen! Ich werde über die beiden unter der Annahme sprechen, dass Sie eine Bundle-Installation haben. Wenn Sie einen Artikel über "Rspec", "FactoryBot" gepostet haben, werden wir auch hier einen Link veröffentlichen!
    Schritt ❶

gemfile Ordner


group :development, :test do
end 

Im

gem 'faker'

Beschrieben.


Schritt ❷

Terminal


%bundle install 

Schreiben Sie so in das Terminal.


Vorgehensweise ❸ Erstellen Sie einen Fabrikordner im Spezifikationsordner Erstellen Sie eine beliebige Datei. (Für Ruby "model name.rb")
Vorgehensweise ❹

factories/***.rb


FactoryBot.define do
  factory :user do
-------Ich werde es hier unten beschreiben------------


 end
end

  1. Wie schreibe ich einen Spitznamen und eine E-Mail

”-----Ich werde es hier unten beschreiben--------”

In der Spalte von

factories/***.rb


nickname { Faker::Name.name }
email { Faker::Internet.free_email }

Sie können es zufällig durch Schreiben generieren! Spitzname und E-Mail haben denselben Namen wie die DB-Spalte.


3. Wie schreibe ich ein Passwort

factories/***.rb


password = Faker::Internet.password(min_length: 6)
password { password }
password_confirmation { password }

min_length: 6 entspricht der inhärenten Validierung von gem "devise". Es enthält auch ein "Bestätigungskennwort" zur zweimaligen Eingabe.

  1. So überprüfen Sie, ob es generiert wurde

Am Terminal

Terminal


%rails c

Und nach dem Öffnen der Konsole

Konsole


pry(main)>FactoryBot.create(:Modellname)
  • pry ist, weil wir bind.pry eingeführt haben.

Wenn Sie Folgendes eingeben, können Sie sehen, dass der Spitzname und die E-Mail-Informationen zufällig generiert werden!

  • Das Passwort wird mit encrypted_password verschlüsselt.

Konsole


nickname: "Sen. Lou Schimmel", email: "[email protected]"


4. Eine andere Art zu schreiben

Wenn es sich um ein Muster handelt, das keinen Edelstein "Fälscher" einführt, Sie können auch so schreiben!

factories/***.rb


FactoryBot.define do
  factory :user do

  nickname              {"taro"}
  email                 {"[email protected]"}
end
end


Ergänzung. Wie schreibe ich Datum / Nachname / Vorname (Kanji und Katakana)

Aus der Schlussfolgerung,

factories/***.rb


FactoryBot.define do
  factory :user do
    transient do
      person { Gimei.name }
   end
   date { Faker::Date.backward }
   first_name { person.first.kanji }
   last_name { person.last.kanji }
   first_name_kana { person.first.katakana }
   last_name_kana { person.last.katakana }
 end
end

Schreiben Sie so. Ich möchte jedoch, dass Sie sich einer Sache bewusst sind. Da Kanji und Katakana (Furi-Kana) in Gem "Faker" nicht zufällig generiert werden können, schreiben Sie Gem "Gimei" separat in die Gemfile und führen Sie die Bandle-Installation durch.

Und

factories/***.rb


transient do
person { Gimei.name }

Dies gibt Ihnen die Freiheit, den Edelstein zu verwenden.

Bei der tatsächlichen Verwendung Setzen Sie "Person". Kann durch Nachname und Vorname ("Vorname" / "Nachname") angegeben werden, Es kann mit Kanji und Katakana ("Kanji" / "Katakana") angegeben werden.

Recommended Posts