QuickFuzzr 0.1.4
See the version list below for details.
dotnet add package QuickFuzzr --version 0.1.4
NuGet\Install-Package QuickFuzzr -Version 0.1.4
<PackageReference Include="QuickFuzzr" Version="0.1.4" />
<PackageVersion Include="QuickFuzzr" Version="0.1.4" />
<PackageReference Include="QuickFuzzr" />
paket add QuickFuzzr --version 0.1.4
#r "nuget: QuickFuzzr, 0.1.4"
#:package QuickFuzzr@0.1.4
#addin nuget:?package=QuickFuzzr&version=0.1.4
#tool nuget:?package=QuickFuzzr&version=0.1.4
<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, 4) // <= add between 1 and 4 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.73 }, Order { Total: 67.25 } ],
Payments: [ Payment { Amount: 109.98 } ]
},
Customer {
Name: "Customer-2",
Orders: [ Order { Total: 10.51 }, Order { Total: 14.66 }, Order { Total: 60.86 } ],
Payments: [ Payment { Amount: 86.03 } ]
}
]
Highlights
- Zero-config generation:
Fuzzr.One<T>()works out of the box. - LINQ-composable: Build complex fuzzrs 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.
- Handles real-world domains: 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.
- Cookbook
- More Primitives: DateTimeOffset, NInt, NUint, ...
- QuickFuzzr.Reactor: Convention based generation, 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.