Conjecture.AspNetCore
0.29.0
dotnet add package Conjecture.AspNetCore --version 0.29.0
NuGet\Install-Package Conjecture.AspNetCore -Version 0.29.0
<PackageReference Include="Conjecture.AspNetCore" Version="0.29.0" />
<PackageVersion Include="Conjecture.AspNetCore" Version="0.29.0" />
<PackageReference Include="Conjecture.AspNetCore" />
paket add Conjecture.AspNetCore --version 0.29.0
#r "nuget: Conjecture.AspNetCore, 0.29.0"
#:package Conjecture.AspNetCore@0.29.0
#addin nuget:?package=Conjecture.AspNetCore&version=0.29.0
#tool nuget:?package=Conjecture.AspNetCore&version=0.29.0
Conjecture.AspNetCore
Property-based testing for ASP.NET Core minimal APIs and MVC controllers, built on Conjecture. Walks EndpointDataSource and IApiDescriptionGroupCollectionProvider to discover routes, then synthesises typed valid and malformed HttpInteraction strategies dispatched in-process via WebApplicationFactory.
Install
dotnet add package Conjecture.Core
dotnet add package Conjecture.AspNetCore
Usage
using Conjecture.AspNetCore;
using Conjecture.Core;
using Conjecture.Http;
using Conjecture.Xunit;
using Microsoft.AspNetCore.Mvc.Testing;
public class ApiSafetyTests : IClassFixture<WebApplicationFactory<Program>>
{
private readonly WebApplicationFactory<Program> factory;
public ApiSafetyTests(WebApplicationFactory<Program> factory) => this.factory = factory;
[Property]
public async Task NeverReturns5xx(HttpInteraction request)
{
HttpClient client = this.factory.CreateClient();
Strategy<HttpInteraction> strategy = Strategy
.AspNetCoreRequests(this.factory.Services.GetRequiredService<IHost>(), client)
.Build();
HostHttpTarget target = new(this.factory.Services.GetRequiredService<IHost>(), client);
await request.Response(target).AssertNot5xx();
}
}
MalformedRequestsOnly() and ValidRequestsOnly() switch the generated request distribution; ExcludeEndpoints(...) skips routes whose metadata you don't want covered (e.g. /admin).
Design
See ADR 0063 for the metadata-driven request synthesis design.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Conjecture.Core (>= 0.29.0)
- Conjecture.Http (>= 0.29.0)
- Conjecture.OpenApi (>= 0.29.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Conjecture.AspNetCore:
| Package | Downloads |
|---|---|
|
Conjecture.AspNetCore.EFCore
Property-based testing helpers bridging Conjecture.AspNetCore and Conjecture.EFCore via AspNetCoreDbTarget. |
GitHub repositories
This package is not used by any popular GitHub repositories.