QuickFuzzr 0.1.2
See the version list below for details.
dotnet add package QuickFuzzr --version 0.1.2
NuGet\Install-Package QuickFuzzr -Version 0.1.2
<PackageReference Include="QuickFuzzr" Version="0.1.2" />
<PackageVersion Include="QuickFuzzr" Version="0.1.2" />
<PackageReference Include="QuickFuzzr" />
paket add QuickFuzzr --version 0.1.2
#r "nuget: QuickFuzzr, 0.1.2"
#:package QuickFuzzr@0.1.2
#addin nuget:?package=QuickFuzzr&version=0.1.2
#tool nuget:?package=QuickFuzzr&version=0.1.2
<img src='icon.png' width='40' align='top'/> QuickFuzzr
A type-walking cheetah with a hand full of random.
Generate realistic test data and fuzz your domain models using composable LINQ expressions.
Example
var fuzzr =
from decimalPrecision in Fuzzr.Decimal().Apply(d => Math.Round(d, 2)).Replace()
from name in Fuzzr.OneOf("John", "Paul", "George", "Ringo")
let email = $"{name.ToLower()}@mail.com"
from customer in Fuzzr.One(() => new Customer(name, email))
from orders in Fuzzr.One<Order>()
.Apply(customer.PlaceOrder)
.Many(1, 4)
from payment in Fuzzr.One<Payment>()
.Apply(p => p.Amount = orders.Sum(o => o.Total))
.Apply(customer.MakePayment)
select (customer, orders, payment);
fuzzr.Generate();
// Results in =>
// (
// Customer {
// Name: "Paul",
// Email: "paul@mail.com",
// Orders: [ Order { Total: 67.25 }, Order { Total: 23.41 } ],
// Payments: [ Payment { Amount: 90.66 } ]
// },
// [ Order { Total: 67.25 }, Order { Total: 23.41 } ],
// Payment {
// Amount: 90.66
// }
// )
Highlights
- Zero-config generation:
Fuzzr.One<T>()works out of the box. - LINQ-composable: Build complex generators from simple parts.
- Property-based testing ready: Great for fuzzing and edge case discovery.
- Configurable defaults: Fine-tune generation with
Configr. - Recursive object graphs: Automatic depth-controlled nesting.
- Seed-based reproducibility: Deterministic generation for reliable tests.
- Real-world domain ready: Handles aggregates, value objects, and complex relationships.
Installation
QuickFuzzr is available on NuGet:
Install-Package QuickFuzzr
Or via the .NET CLI:
dotnet add package QuickFuzzr
Documentation
QuickFuzzr is fully documented, with real, executable examples for each combinator and concept.
You can explore it here:
Note: A full API reference is currently being worked on.
For now all public methods have xml summary comments.
Roadmap
- Complete API reference documentation.
- More Elm-style error messages.
- More Primitives: DateTimeOffset, NInt, NUint, ...
- QuickFuzzr.Reactor: Cookbook, reusable patterns.
- QuickFuzzr.Evil: For all your property based testing needs.
License
This project is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on QuickFuzzr:
| Package | Downloads |
|---|---|
|
QuickCheckr
CSI: .NET, Property-based testing for the pragmatic. |
|
|
QuickAcid
Drop it in acid. Look for gold. Like alchemy, but reproducible. |
GitHub repositories
This package is not used by any popular GitHub repositories.