Matheus Castiglioni

Mockando Dados Com Fakerjs

Comumente chega um momento onde precisamos criar nossas telas, seja para um site ou sistema web, em alguns desses momentos nossa API (back-end) ainda não estará pronta, dessa maneira o desenvolvimento das telas (front-end) poderá se atrasar. Para que isso não ocorra, podemos criar dados não reais (fake data), assim, conseguimos dar andamento nas telas sem precisar da API ou a API consegue retornar esses dados mockados para que o desenvolvimento das telas seja iniciado.

Porém, ficar mockando os dados não é uma tarefa muita legal, exige um certo tempo e criatividade, pensando nisso, foi criado a lib Faker.js. Com ela todo o trabalho de mock e criatividade para pensar nas informações ficam abstraídas, dessa maneira conseguimos focar apenas no desenvolvimento das telas.

Começando a usá-la

Podemos começar a utilizar a Faker.js de N maneiras, seja via npm:

npm i faker

Ou com o yarn:

yarn add faker

Além da instalação via gerenciadores de pacote (package managers) também é possível baixar o arquivo minificado (.min.js) da biblioteca, o mesmo pode ser encontrado em: https://github.com/Marak/faker.js/blob/master/build/build/faker.min.js

Dessa maneira, podemos baixá-lo e salvá-lo dentro do nosso projeto, depois, simplesmente realizamos a importação do mesmo em nosso html através da tag script:

<script src="./assets/js/faker.min.js"></script>
Markup

Para conseguimos utilizá-lo através do Node em nossa API ou back-end, após instalá-la via npm ou yarn, precisamos apenas realizar a importação, seja com require:

const faker = require('faker')
JavaScript

Ou com JavaScript modules:

import faker from 'faker'
JavaScript

Preparando o ambiente

Bom, com toda instalação feita, já podemos começar a utilizá-la, para exemplo do post vamos criar um objeto do tipo pessoa e gerar cem registros do mesmo, o primeiro passo será criar nosso array:

const people = []
JavaScript

Agora, podemos criar um for realizando cem interações:

for (let i = 0; i < 100; i++) {
	const person = {
		firstName: null,
		lastName: null,
		address: {
			city: null,
			country: null,
			phone: null,
			state: null,
			street: null,
			zipCode: null
		},
		birthDay: null,
		image: null,
		email: null,
		userName: null,
		password: null,
		ip: null,
	}
	people.push(person)
}
JavaScript

E no fim, podemos realizar o log final do nosso array:

console.log(people)

Conhecendo a Faker.js

Com toda preparação pronta, podemos de fato começar a utilizar os dados falsos da Faker.js, a ideia será trocar todos os null's por dados mockados. Todas as funções para obtenções dos dados podem ser chamadas atraves do faker.grupo.informacao, onde:

Dessa maneira, para obtermos informções referente a nome podemos utilizar faker.name., onde:

Informações pessoais

Assim, podemos pegar o primeiro nome com:

firstName: faker.name.firstName()
JavaScript

E para o sobrenome:

faker.name.lastName()
JavaScript

Pegando a data de nascimento:

birthDay: faker.date.past(),
JavaScript

Informações de localização

Agora, podemos partir para as informações do endereço através de faker.address.

Pegando o nome de uma cidade:

city: faker.address.city()
JavaScript

Pegando o nome de um país:

country: faker.address.country()
JavaScript

Pegando o valor de um número de telefone:

phone: faker.phone.phoneNumber()
JavaScript

Pegando o nome de um estado:

state: faker.address.stateAbbr()
JavaScript

Pegando o nome de uma rua:

street: faker.address.streetName()
JavaScript

Pegando o valor de um CEP:

zipCode: faker.address.zipCode()
JavaScript

Informações de internet

Legal, já temos as informações pessoais e de localização do nosso objeto pessoal, agora, nos resta as informações referentes a internet, podemos acessá-las e mocká-las através do faker.internet.:

Pegando uma imagem de perfil:

image: faker.image.avatar()
JavaScript

Pegando um email:

email: faker.internet.email()
JavaScript

Pegando um usuário:

userName: faker.internet.userName()
JavaScript

e senha:

password: faker.internet.password()
JavaScript

Por fim, nos resta mockar o valor do IP:

ip: faker.internet.ip()
JavaScript

Com isso, finalizamos nosso objeto pessoa, já adicionamos ele no nosso array e mockamos 100 informações no mesmo, tudo certo?

Pensando se tudo está certo ou não

Errado, nossas informações foram mockadas no formato americano, mas, precisamos que estejam no formato brasileiro, como podemos fazer isso? Para trocar as informações de americanas para brasileiras, podemos simplesmente setar um locale brasileiro:

faker.locale = 'pt_BR'
JavaScript

Agora as mesmas estão no formato brasileiro.

Nosso código completo fica com a seguinte estrutura:

faker.locale = 'pt_BR'
const people = []
for (let i = 0; i < 100; i++) {
	const person = {
		firstName: faker.name.firstName(),
		lastName: faker.name.lastName(),
		address: {
			city: faker.address.city(),
			country: faker.address.country(),
			phone: faker.phone.phoneNumber(),
			state: faker.address.stateAbbr(),
			street: faker.address.streetName(),
			zipCode: faker.address.zipCode()
		},
		birthDay: faker.date.past(),
		image: faker.image.avatar(),
		email: faker.internet.email(),
		userName: faker.internet.userName(),
		password: faker.internet.password(),
		ip: faker.internet.ip(),
	}
	people.push(person)
}
console.log(people)
JavaScript

Conclusão

Nesse post expliquei como e porque utilizar a biblioteca Faker.js, com ela conseguimos criar dados mockados para nossas API’s, sites ou sistemas na web. Sua documentação completa pode ser encontrada aqui.

E aí, você já conhecia a Faker? Não deixe de comentar, se você gostou desse post e pretende receber novas postagens por email, assine a newsletter, assim todo novo post será enviado para você automaticamente via email.

Até a próxima

Matheus Castiglioni

Matheus Castiglioni

Apaixonado pelo mundo dos códigos e um eterno estudante, gosto de aprender e saber um pouco de tudo, aquela curiosidade de saber como tudo funciona, tento compartilhar o máximo de conhecimentos adquiridos e ajudar todos aqueles que sou capaz.