A simple fake data generator for C#, F#, and VB.NET, ported from faker.js, to load databases and apps with realistic test data.
Bogus is a fake data generator for .NET languages (C#, F#, VB.NET) that creates realistic test data for applications. It solves the problem of manually populating databases and UIs with dummy data by providing a fluent API to generate names, addresses, financial details, and more. Based on faker.js, it supports over 50 locales and deterministic seeding for reliable testing.
.NET developers who need to generate test data for unit testing, integration testing, or prototyping. It's especially useful for those working with Entity Framework Core for database seeding or building applications that require realistic mock data.
Developers choose Bogus for its fluent, intuitive API, extensive locale support, and deterministic data generation, which ensures test reliability. Its active community, regular updates, and compatibility with popular .NET testing workflows make it a robust alternative to manual data creation or less feature-rich libraries.
:card_index: A simple fake data generator for C#, F#, and VB.NET. Based on and ported from the famed faker.js.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Inspired by FluentValidation, it offers an intuitive, chainable syntax for defining data rules, as demonstrated in the 'Great C# Example' with clear, readable code.
Supports seed control for repeatable data sets, essential for reliable unit testing, with detailed guidance in the Determinism section to avoid flaky tests.
Covers over 50 locales for culturally appropriate data, from English to Korean, though some may default to English for missing datasets as noted in the README.
Includes APIs for addresses, commerce, finance, internet, and more, listed comprehensively in the Bogus API Support section, reducing manual data creation.
Integrates with third-party extensions like AutoBogus for automatic rule generation and NaughtyStrings for security testing, enhancing functionality beyond core features.
Advanced datasets (e.g., healthcare, Hollywood) require purchasing Bogus Premium licenses, creating a cost barrier for teams needing specialized data.
Some locales lack complete datasets and silently default to English, as admitted in the README, which can undermine internationalization testing efforts.
Managing seeds for consistent output is error-prone; code changes or version updates can alter deterministic sequences, requiring careful design as warned in the Determinism section.
While it generates realistic data, it doesn't enforce business logic or data validation rules, leaving that to developers to implement separately.