"Mockando"
Tags: fakedata, programming, beginners, mock
Published: 2022-07-26 21:08:02

_"Objetos mock, objetos simulados ou simplesmente mock (do inglês mock object) em desenvolvimento de software são objetos que simulam o comportamento de objetos reais de forma controlada...Em outras palavras, os objetos mock são objetos 'falsos' que simulam o comportamento de uma classe ou objeto 'real' para que possamos focar o teste na unidade a ser testada."_

Fonte: https://pt.wikipedia.org/wiki/Objeto_mock

---
A realização de testes faz parte do desenvolvimento de qualquer produto ou serviço.

Na indústria automobilística há os "dummies" cuja finalidade é representar o mais fielmente possível o que acontece com os ocupantes dos veículos em caso de acidentes.

Já em desenvolvimento de sistemas, temos os objetos _mock_, cujo objetivo é representar dados reais para testar as aplicações.

Pensando nisso, este artigo traz duas "ferramentas" que ajudarão na criação de dados "mockados" (fictícios) para testar a sua aplicação.

---

## [Mockaroo](https://www.mockaroo.com/)


![Logo mockaroo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/80g2pu37utj3c6mqj7dm.jpg)

Assim como outras ferramentas destinadas a geração de dados aleatórios, o [Mockaroo](https://www.mockaroo.com/) disponibiliza várias opções abrangendo desde informações pessoais como nome e endereço, a informações do mercado de ações, como ativos, nomes e áreas de atuação de companhias listadas nas bolsas NASDAQ e NYSE.

No momento em que escrevo este artigo, o [Mockaroo](https://www.mockaroo.com/) conta com 157 tipos agrupados em 12 categorias.

Com uma conta gratuita temos acesso a recursos mais avançados como **schemas**, **scenarios**, **api** (isso mesmo) e **projetos**.

---


### Schema

Um _schema_ é que a pré-definição de campos e tipos a serem gerados.

A plataforma permite criar inúmeros _schemas_ facilitando a geração de dados aleatórios sem precisar configurá-los sempre que for necessário.

---


### Datasets

Se você já possuir um conjunto de informações e desejar usá-lo para geração de dados, crie um _dataset_.

Importe o conjunto de informações e utilize-o no seu _schema_.

Para o campo desejado, selecione o tipo **Dataset Column**, escolha um _dataset_ da lista e em seguida o campo do _dataset_.

Ao gerar novos dados a plataforma vai buscar as informações do _dataset_ que foi importado.

Existe a possibilidade de criar mais de um _dataset_.

Detalhe importante: os dados a serem importados devem estar no formato **.csv** ou **.txt**.

---

### Mock API

Sem sobra de dúvida esta é a funcionalidade mais interessante desta plataforma.

Com uma conta gratuita, ela disponibiliza um **endpoint** que retornará dados aleatórios de um **schema** pré-definido.

Assim, não é preciso acessar a plataforma todas as vezes que precisar gerar um novo conjunto de dados.

Além disso, você pode configurar seu ambiente de desenvolvimento para acessar o **endpoint** sempre que precisar reiniciar seus testes unitários.

---


### Scenario

Nele criamos uma regra para que os dados sejam mais fiéis à realidade.

Por exemplo, para evitar que preços de produtos em regiões diferentes sejam semelhantes, a plataforma permite montar cenários para cada região, gerando preços mais próximos à realidade de cada cenário.

---

### Projects

Nesta opção podemos criar projetos para agrupar **schemas**, **scenarios** e **datasets** e compartilhar com outros usuários, mesmo aqueles não cadastrados na plataforma.

---


## [4Devs Ferramentas Online](https://www.4devs.com.br/)


![Logo 4devs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vz6soshl6k6ds1mku05j.jpg)

Além de diversas opções para geração de documentos individualmente há tipos para
* pessoas: inclui endereço completo, data de nascimento, altura, todos os documentos, etc
* empresas: data de abertura, endereço, cnpj, inscrição estadual
, endereços: (de todo território nacional)

---

### Nomes

Se sua aplicação remete a um RPG, este tipo pode te ajudar muito.

Basta selecionar a raça entre as opções a seguir para que um nome seja gerado:
* humano
* elfo
* orc
* anão
* dragão

---


### Gerador de texto Lorem Ipsum

Assim como o [Mockaroo](https://www.mockaroo.com/) aqui também conseguimos gerar palavras aleatórias, frases ou parágrafos completos.

Apenas informe o tipo e a quantidade desejados para gerar os textos.

---

### Validadores

A plataforma possui validadores para todos os tipos de documentos atualmente válidos no Brasil.

Apenas selecione o tipo de validador, informe o código do documento e verifique se a numeração digitada representa um documento válido no território nacional.

---

### Funções string

Dentre as diversas funções disponíveis, destaco:
* corretor ortográfico
* número por extenso
* remover acentos do texto: substitui 'ç' por 'c'

---

### Funções matemáticas

As opções estão agrupadas em:
* calculadoras on-line: conversão de números romanos, MDC, MMC, entre outras;
* cálculo de áreas: círculos, quadrados, etc
* datas e horas

---

## Conclusão

Embora o [Mockaroo](https://www.mockaroo.com/) tenha um leque grande de opções, o [4devs](https://www.4devs.com.br/) busca ajudar o desenvolvedor com vários validadores e rotinas auxiliares.

Ambas as ferramentas são boas naquilo que se propuseram a fazer e tenho certeza que sua aplicação será bem servida, seja qual for a sua escolha.

---

Deixe nos comentários outras ferramentas semelhantes que você conheça/trabalhou.


Obrigado pela leitura.