QuickFuzzr 0.1.8
dotnet add package QuickFuzzr --version 0.1.8
NuGet\Install-Package QuickFuzzr -Version 0.1.8
<PackageReference Include="QuickFuzzr" Version="0.1.8" />
<PackageVersion Include="QuickFuzzr" Version="0.1.8" />
<PackageReference Include="QuickFuzzr" />
paket add QuickFuzzr --version 0.1.8
#r "nuget: QuickFuzzr, 0.1.8"
#:package QuickFuzzr@0.1.8
#addin nuget:?package=QuickFuzzr&version=0.1.8
#tool nuget:?package=QuickFuzzr&version=0.1.8
<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.
Examples
It Just Works
Fuzzr.One<Person>().Generate();
// Results in => Person { Name = "ddnegsn", Age = 18 }
Configurable
var fuzzr =
// Generate complete customer with orders and payments
from counter in Fuzzr.Counter("my-key") // <= keyed auto incrementing int
from customer in Fuzzr.One(() => new Customer($"Customer-{counter}"))
from orders in Fuzzr.One<Order>()
.Apply(customer.PlaceOrder) // <= add order to customer
.Many(1, 3) // <= add between 1 and 3 random orders
from payment in Fuzzr.One<Payment>()
.Apply(p => p.Amount = orders.Sum(o => o.Total)) // <= calculate total from orders
.Apply(customer.MakePayment) // <= add payment to customer
select customer;
fuzzr.Many(2).Generate();
Output:
[
Customer {
Name: "Customer-1",
Orders: [ Order { Total: 42.72 }, Order { Total: 67.24 } ],
Payments: [ Payment { Amount: 109.96 } ]
},
Customer {
Name: "Customer-2",
Orders: [ Order { Total: 10.50 }, Order { Total: 14.66 }, Order { Total: 60.86 } ],
Payments: [ Payment { Amount: 86.02 } ]
}
]
Highlights
- Zero-config generation:
Fuzzr.One<T>()works out of the box. - LINQ-composable: Build complex fuzzrs from simple parts.
- Configurable defaults: Fine-tune generation with
Configr. - Recursive object graphs: Automatic depth-controlled nesting.
- Seed-based reproducibility: Deterministic results for reliable tests.
- Built for Devs: Clean LINQ workflows and Elm-style errors that guide you to the fix.
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 every feature, and every statement in the docs is backed by a test.
You can explore it here:
Roadmap
- Add a 'When Things Go Wrong' chapter to reference.
- Benchmarks: Only believe the measured hype.
- Add the missing Primitives: DateTimeOffset, NInt, NUint, ...
- Expand the Cookbook with more real-world recipes
- QuickFuzzr.Reactor: Convention-based generation and reusable patterns.
- QuickFuzzr.Evil: For all your property-based testing needs.
License
This project is licensed under the MIT License.
Addendum
The How and Why of QuickFuzzr: From Kitten to Cheetah.
| 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.