Gere Dados Fake facilmente para C++ com faker-cxx

Similar ao Factory do Laravel e o Faker.js, útil para ambientes de desenvolvimento.


Gere Dados Fake facilmente para C++ com faker-cxx


C++ Faker é uma biblioteca moderna de código aberto que utiliza C++20 para gerar dados falsos para testes durante o desenvolvimento das suas aplicações.

A biblioteca é fortemente inspirada em Faker.js.


Utilizando

Apesar de usar em conjunto com LibFMT e GoogleTest, ao mesmo tempo, possuí-las ainda sim é opcional. No caso da LibFMT será clonada automaticamente e o GoogleTest pode ser desativado durante a compilação.

Pra você testar do zero:

01. crie um projeto, entre no mesmo e inicie um repositório Git:

mkdir myproject
cd myproject
git init

02. Clone recursivamente o Faker-cxx:

git submodule add https://github.com/cieslarmichal/faker-cxx.git


03. Agora crie um CMakeLists.txt

E adicione o conteúdo abaixo:

cmake_minimum_required(VERSION 3.10)

project(TestFaker
  LANGUAGES CXX
  VERSION 0.0.1
)

set(BUILD_FAKER_TESTS OFF)

add_subdirectory(faker-cxx)

set (CMAKE_CXX_STANDARD 23)
add_executable(a.out main.cpp)

target_link_libraries(a.out faker-cxx)

Note que na linha: set(BUILD_FAKER_TESTS OFF) nós desativamos o GoogleTest, e eu recomendo porque notei que tem um array que tá bugado. 😃


04. Crie um arquivo C++ main.cpp

E adicione o conteúdo abaixo:

#include <format>
#include <iostream>

#include "faker-cxx/include/faker-cxx/Datatype.h"
#include "faker-cxx/include/faker-cxx/Date.h"
#include "faker-cxx/include/faker-cxx/Internet.h"
#include "faker-cxx/include/faker-cxx/String.h"

auto main() -> int {
  const auto id = faker::String::uuid();
  const auto email = faker::Internet::email();
  const auto password = faker::Internet::password();
  const auto nickname = faker::Internet::username();
  const auto active = faker::Datatype::boolean();
  const auto email_check = faker::Datatype::boolean();
  const auto code_check = faker::String::numeric(8);
  const auto created_at = faker::Date::pastDate();
  const auto updated_at = faker::Date::recentDate();

  std::cout << std::format("id: {}", id) << '\n';
  std::cout << std::format("email: {}", email) << '\n';
  std::cout << std::format("password: {}", password) << '\n';
  std::cout << std::format("nickname: {}", nickname) << '\n';
  std::cout << std::format("active: {}", active) << '\n';
  std::cout << std::format("email_check: {}", email_check) << '\n';
  std::cout << std::format("code_check: {}", code_check) << '\n';
  std::cout << std::format("created_at: {}", created_at) << '\n';
  std::cout << std::format("updated_at: {}", updated_at) << '\n';

  return 0;
}

Nesse exemplo há diversos fakers que você pode gerar, mas há mais exemplos como: Nome de Empresas, Animais, … e entre outros!


05. Copile e rode

cmake . -B build
cd build && make
./a.out

Exemplo de saída similar:

id: 885c6f73-48e1-49c5-b718-cc099c26486c
email: WendyWest586@yahoo.com
password: Gy4.hX*=HA|OG?_
nickname: AltonKulas
active: true
email_check: true
code_check: 23567299
created_at: 2023-05-05T11:39:05Z
updated_at: 2023-11-16T13:07:05Z

Toda vez que você rodar o binário, novos dados serão gerados!


Para mais informações visite o repositório: https://github.com/cieslarmichal/faker-cxx.



cpp cppdaily


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo

Artigos Relacionados




Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!