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.
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.
mkdir myproject
cd myproject
git init
git submodule add https://github.com/cieslarmichal/faker-cxx.git
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. 😃
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!
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.