Cosmos.EventDriven.Testing.Utilities
0.0.1-RC.2
See the version list below for details.
dotnet add package Cosmos.EventDriven.Testing.Utilities --version 0.0.1-RC.2
NuGet\Install-Package Cosmos.EventDriven.Testing.Utilities -Version 0.0.1-RC.2
<PackageReference Include="Cosmos.EventDriven.Testing.Utilities" Version="0.0.1-RC.2" />
<PackageVersion Include="Cosmos.EventDriven.Testing.Utilities" Version="0.0.1-RC.2" />
<PackageReference Include="Cosmos.EventDriven.Testing.Utilities" />
paket add Cosmos.EventDriven.Testing.Utilities --version 0.0.1-RC.2
#r "nuget: Cosmos.EventDriven.Testing.Utilities, 0.0.1-RC.2"
#:package Cosmos.EventDriven.Testing.Utilities@0.0.1-RC.2
#addin nuget:?package=Cosmos.EventDriven.Testing.Utilities&version=0.0.1-RC.2&prerelease
#tool nuget:?package=Cosmos.EventDriven.Testing.Utilities&version=0.0.1-RC.2&prerelease
Cosmos.EventDriven.Testing.Utilities
Utilidades para pruebas unitarias de Event Driven para .NET 10.
Descripción
Este paquete provee clases abstractas e implementaciones in-memory para facilitar la creación de pruebas unitarias en arquitecturas Event-Driven. Permite verificar que los eventos privados y públicos correctos son publicados durante la ejecución de un handler, sin depender de infraestructura real (mensajería, buses de eventos).
Instalación
dotnet add package Cosmos.EventDriven.Testing.Utilities
Clases disponibles
EventDrivenAsyncTest
Clase base abstracta para pruebas de handlers que publican eventos privados y/o públicos. Expone dos senders in-memory y métodos de aserción:
| Miembro | Descripción |
|---|---|
PrivateEventSender |
Instancia de TestPrivateEventSender para capturar eventos privados |
PublicEventSender |
Instancia de TestPublicEventSender para capturar eventos públicos |
ThenIsPublishedPrivately(params IPrivateEvent[]) |
Verifica que los eventos privados publicados coincidan con los esperados |
ThenIsPublishedPublicly(params IPublicEvent[]) |
Verifica que los eventos públicos publicados coincidan con los esperados |
TestPrivateEventSender
Implementación in-memory de IPrivateEventSender. Acumula los eventos recibidos en Events para ser inspeccionados en las aserciones.
TestPublicEventSender
Implementación in-memory de IPublicEventSender. Acumula los eventos recibidos en Events para ser inspeccionados en las aserciones.
Ejemplo de uso
public class ProcesarPedidoTest : EventDrivenAsyncTest
{
private readonly ProcesarPedidoHandler _handler;
public ProcesarPedidoTest()
{
_handler = new ProcesarPedidoHandler(PrivateEventSender, PublicEventSender);
}
[Fact]
public async Task Si_ProcesoPedido_Debe_PublicarEventos()
{
// Given
var comando = new ProcesarPedido(Guid.NewGuid());
// When
await _handler.HandleAsync(comando);
// Then
ThenIsPublishedPrivately(new PedidoRecibido(comando.PedidoId));
ThenIsPublishedPublicly(new PedidoConfirmado(comando.PedidoId));
}
}
Notas adicionales
- Los senders son in-memory, ideales para pruebas unitarias rápidas y aisladas.
ThenIsPublishedPrivatelyyThenIsPublishedPubliclyvalidan tanto la cantidad como el tipo y contenido de cada evento.- Los eventos sin propiedades (vacíos) pasan la validación si el tipo coincide.
Requisitos
- .NET 10.0 o superior
Dependencias
- AwesomeAssertions (v9.4.0) - Librería de assertions fluidas
- xUnit (v3.2.2) - Framework de testing
- Cosmos.EventDriven.Abstractions - Abstracciones de Event Driven
Paquetes Relacionados
- Cosmos.EventDriven.Abstractions: Define las interfaces
IPrivateEventSendereIPublicEventSender - Cosmos.EventDriven.CritterStack: Implementación de producción con Wolverine
- Cosmos.EventSourcing.Testing.Utilities: Utilidades para pruebas de Event Sourcing
Licencia
Copyright © Cosmos. Todos los derechos reservados.
| 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
- AwesomeAssertions (>= 9.4.0)
- Cosmos.EventDriven.Abstractions (>= 0.0.5-RC.1)
- xunit.v3.extensibility.core (>= 3.2.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 0.0.1-RC.4 | 36 | 3/10/2026 | |
| 0.0.1-RC.3 | 45 | 3/10/2026 | |
| 0.0.1-RC.2 | 37 | 3/10/2026 | |
| 0.0.1-RC.1 | 41 | 3/10/2026 |