A faker gem is used to create the fake data for testing or demo purpose in rails application. It is Perl's Data::Faker library that generate different type (i.e. Address, color, code, commerce, company, date etc.) of fake data. We are generally using this gem to feed the fake records during application development. The implementation of faker gem give as below...
Step1: Add faker gem into Gemfile
Path: my_app/Gemfile
gem install faker
Step2: Run bundler
bundle install
Now, we can use the fake data in our application.
Feed fake data into table: If we require some data during application development, we can feed by seed.rb file
For example : Suppose we have a table users with columns first_name, last_name, email, address, phone and need some data during development, so we can feed data into table by below code...
Add below code into seeds.rb
Path: my_app/db/seeds.rb
(0..50).each do |p|
User.create(fist_name: Faker::Name.first_name, last_name: Faker::Name.last_name, email: Faker::Internet.email , address: Faker::Address.street_address , phone: Faker::Number.number(10) )
# puts "Created #{p}"
end
Then run
rake db:seed
Finally our users table filled with 50 records.We can also use this gem into test case.
For example: we are going to write a model unit test-case for has_many association between country & city using faker gem data
def test_country_has_many_cities_association
country = create(:country, :name => Faker::Address.country, :code => Faker::Address.country_code)
c1 = create(:city, country_id: country.id, :city_name => Faker::Address.city, :zip => Faker::Address.zip_code )
c2 = create(:city, country_id: country.id, :city_name => Faker::Address.city, :zip => Faker::Address.zip_code)
assert_equal country.cities, [c1,c2]
end
0 Comment(s)