Generando datos de pruebas usando la gema Faker

Cuando estamos desarrollando alguna aplicación nos es útil llenar de datos nuestras tablas para ver el comportamiento de los diferentes layouts, consultas, etc. En ruby existe la gema Faker la cual cumple muy bien esta labor.

Para instalarla solamente necesitamos hacer el acostumbrado:

1
gem install faker

También la podemos agregar a nuestro proyecto Rails por ejemplo en el Gemfile con:

1
gem 'faker', require: false

Usamos el require: false en este caso para que Bundler no cargue la gema en todos los procesos y sea llamada únicamente dentro del código que la va a utilizar usando require 'faker' esto en caso que no requiramos utilizar una gema más que en procesos muy específicos.

Ahora para utilizarla, por ejemplo para cargar los datos de 100 personas en una app en Rails usando el seeds.rb podemos hacerlo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
require 'faker'
puts 'started loading person data'

100.times do |row|
Person.create(first_name: Faker::Name.first_name,
last_name: Faker::Name.last_name,
email: Faker::Internet.email,
birth_date: Faker::Date.backward(23_725),
national_id_code: Faker::Number.number(10),
mobile_phone: Faker::PhoneNumber.cell_phone,
house_phone: Faker::PhoneNumber.phone_number,
work_phone: Faker::PhoneNumber.phone_number,
title: Faker::Name.prefix,
note: Faker::Lorem.paragraph)
end

puts 'finished loading person data'

Luego ejecutamos un rake db:seed para que se cargue el contenido de seeds.rb en nuestra base de datos.

Ojo que no es recomendado dejar activas las tareas de rake cómo seed en producción, pero las podemos utilizar en nuestro ambiente de desarrollo.

Los métodos de la gema se explican muy fácil por el nombre que llevan, pero igualmente tienen una buena documentación en el sitio en Github, otra cosa muy interesante es que la gema puede ser localizada, así que el texto que genera puede ser nombres, títulos, etc. en español, para casos de internacionalización.

avatar

Blog neyDroid

Desarrollando Vagancias