Enhanced.Testing.Component
1.2.3
dotnet add package Enhanced.Testing.Component --version 1.2.3
NuGet\Install-Package Enhanced.Testing.Component -Version 1.2.3
<PackageReference Include="Enhanced.Testing.Component" Version="1.2.3" />
paket add Enhanced.Testing.Component --version 1.2.3
#r "nuget: Enhanced.Testing.Component, 1.2.3"
// Install Enhanced.Testing.Component as a Cake Addin #addin nuget:?package=Enhanced.Testing.Component&version=1.2.3 // Install Enhanced.Testing.Component as a Cake Tool #tool nuget:?package=Enhanced.Testing.Component&version=1.2.3
Enhanced.Testing.Component
This solution provides a set of harnesses for integrating various external components into your .NET testing environment. It simplifies the process of setting up and tearing down external dependencies such as databases, message brokers, and other services during testing.
Harnesses
The solution includes harnesses for the following components:
- PostgreSQL: Facilitates the setup of a PostgreSQL database container for integration testing.
- Redis: Provides support for both Redis and RedisStack, allowing for easy integration of Redis services into your tests.
- Kafka: A harness for setting up a Kafka broker for message-based integration testing.
- gRPC Client: Simplifies the process of testing gRPC services by providing a client harness.
- HTTP Client: Offers a harness for testing HTTP-based services and APIs.
Getting Started
To use these testing components in your project, follow these steps:
Add Dependencies: Ensure your project references the
Enhanced.Testing.Component
namespace and its dependencies.Configure Test Fixtures: Use the provided harnesses in your test fixtures for setting up and tearing down external services. See the
SampleServiceFixture
class for an example.Integration Testing: Write your integration tests using the configured fixtures to interact with real instances of your external dependencies.
Example Usage
Below is an example of how to set up a test fixture using the PostgreSQL harness:
public class MyServiceFixture : IAsyncLifetime
{
public HttpClientHarness HttpClient { get; private set; }
public PostgreSqlHarness PostgreSql { get; private set; }
public DbContextHarness<PeopleDbContext> PeopleDb { get; private set; }
private IComponent _component;
public MyServiceFixture()
{
HttpClient = new HttpClientHarness();
PostgreSql = new PostgreSqlHarness()
{
ConnectionName = "PeopleDb"
};
PeopleDb = new DbContextHarness<PeopleDbContext>
{
EnsureCreated = true
};
_component = ComponentBuilder.Create<Program>()
.AddHarness(HttpClient)
.AddHarness(PostgreSql)
.AddHarness(PeopleDb)
.Build();
}
public async Task InitializeAsync()
{
await _component.StartAsync();
}
public async Task DisposeAsync()
{
await _component.StopAsync();
}
}
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. |
-
net8.0
- Microsoft.AspNetCore.Mvc.Testing (>= 8.0.7)
- Testcontainers (>= 3.9.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Enhanced.Testing.Component:
Package | Downloads |
---|---|
Enhanced.Testing.Component.PostgreSql
Enhanced.Testing.Component is a NuGet package that provides a set of tools for component testing ASP.NET Core applications. |
|
Enhanced.Testing.Component.GrpcClient
Enhanced.Testing.Component is a NuGet package that provides a set of tools for component testing ASP.NET Core applications. |
|
Enhanced.Testing.Component.DbContext
Enhanced.Testing.Component is a NuGet package that provides a set of tools for component testing ASP.NET Core applications. |
|
Enhanced.Testing.Component.Kafka
Enhanced.Testing.Component is a NuGet package that provides a set of tools for component testing ASP.NET Core applications. |
|
Enhanced.Testing.Component.Redis
Enhanced.Testing.Component is a NuGet package that provides a set of tools for component testing ASP.NET Core applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.