Faker was used to create dummy data </ font> in the model unit test. Faker randomly generates names, emails, etc. However, I found that be careful when generating password data </ font> (see below). Therefore, post an article as a memorandum with Notes and remedies </ font>.
** Supplement ** Faker is one of the Ruby on Rails gems. Values can be randomly generated by using faker. Please refer to the link below for details.
Dummy data to the password column was generated by the following description.
user.rb
FactoryBot.define do
factory :user do
nickname { Faker::Name.name }
email { Faker::Internet.free_email }
password { Faker::Internet.password(min_length: 8) }
password_confirmation { password }
end
end
The password generated at this time is usually a combination of numbers and strings, but rarely only strings or numbers are generated </ font>. This means that if password validation is a combination of numbers and strings </ font>, it will be unsuitable as dummy data </ font>. ..
Terminal
[8] pry(#<RSpec::ExampleGroups::User::Create>)> @user = FactoryBot.build(:user)
=> #<User id: nil, email: "[email protected]", nickname: "Eugenie Dach", created_at: nil, updated_at: nil>
[9] pry(#<RSpec::ExampleGroups::User::Create>)> @user.password
=> "1HyWz2Mr"
[10] pry(#<RSpec::ExampleGroups::User::Create>)> @user = FactoryBot.build(:user)
=> #<User id: nil, email: "[email protected]", nickname: "Kathi D'Amore", created_at: nil, updated_at: nil>
[11] pry(#<RSpec::ExampleGroups::User::Create>)> @user.password
=> "NdKrAcLw"
If you have validated the combination of numbers and character strings for the password, manually create dummy data for the password </ font>.
user.rb
FactoryBot.define do
factory :user do
nickname { Faker::Name.name }
email { Faker::Internet.free_email }
password { 'test1234TEST' }
password_confirmation { password }
end
end
that's all
Recommended Posts