Conjecture.Grpc
0.29.0
dotnet add package Conjecture.Grpc --version 0.29.0
NuGet\Install-Package Conjecture.Grpc -Version 0.29.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Conjecture.Grpc" Version="0.29.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Conjecture.Grpc" Version="0.29.0" />
<PackageReference Include="Conjecture.Grpc" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Conjecture.Grpc --version 0.29.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Conjecture.Grpc, 0.29.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Conjecture.Grpc@0.29.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Conjecture.Grpc&version=0.29.0
#tool nuget:?package=Conjecture.Grpc&version=0.29.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Conjecture.Grpc
gRPC interaction primitives for Conjecture. Defines GrpcInteraction (a serializable description of a unary, client-stream, server-stream, or bidirectional gRPC call), IGrpcTarget (resolves a CallInvoker), and GrpcStrategyExtensions (strategies for each RPC mode), so a property test can drive any gRPC method with random inputs and shrink failures.
Install
dotnet add package Conjecture.Core
dotnet add package Conjecture.Grpc
Usage
using Conjecture.Core;
using Conjecture.Grpc;
using Conjecture.Xunit;
using Grpc.Core;
public class OrderingServiceTests
{
[Property]
public async Task UnaryCall_NeverPanics(GrpcInteraction interaction)
{
Strategy<PlaceOrderRequest> requests = Strategy.Just(new PlaceOrderRequest { Quantity = 1 });
Strategy<GrpcInteraction> calls = GrpcStrategyExtensions.Unary(
"ordering",
OrderingService.PlaceOrderMethod,
requests);
GrpcChannelTarget target = new("ordering", "https://localhost:5001");
GrpcResponse response = (GrpcResponse)(await target.ExecuteAsync(calls.Sample(), default))!;
response.AssertNoUnknownStatus();
}
}
Use HostGrpcTarget to dispatch in-process against an IHost (e.g. when testing alongside ASP.NET Core's WebApplicationFactory).
Types
| Type | Role |
|---|---|
GrpcInteraction |
Readonly record describing a single gRPC call. |
GrpcResponse |
Status, response messages, headers, trailers. |
GrpcRpcMode |
Unary, ServerStream, ClientStream, Bidi. |
IGrpcTarget |
Resolves a CallInvoker for a named resource. |
GrpcChannelTarget |
IGrpcTarget over a GrpcChannel. |
HostGrpcTarget |
IGrpcTarget over an IHost. |
GrpcStrategyExtensions.Unary / ServerStream / ClientStream / BidiStream |
Strategies per RPC mode. |
GrpcInvariantExtensions |
AssertStatusOk, AssertStatus, AssertNoUnknownStatus. |
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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Conjecture.Core (>= 0.29.0)
- Conjecture.Interactions.Abstractions (>= 0.29.0)
- Grpc.AspNetCore (>= 2.80.0)
- Grpc.Net.Client (>= 2.80.0)
- Microsoft.AspNetCore.TestHost (>= 10.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.