I command service non sono solo utili durante lo sviluppo, in quanto permettono di eseguire azioni da amministratore di sistema senza riavviare l'esecuzione del processo, ma sono anche funzionali nella scrittura dei test.
Tramite una definizione del tutto simile a quella gia configurata nell' Host di .NET Aspire, possiamo scrivere un test che verifichi la funzionalità del comando e al tempo stesso creare dei metodi di utilità che permettano la pulizia o un controllo ulteriore sulla validità dei test.
Nell'esempio stiamo verificando che la cache venga correttamente ripulita all'invocazione del comando, per poi riutilizzare la medesima configurazione durante lo startup di ogni test.
[Fact]
public async Task Should_ResetCache_WhenTestStarts()
{
var builder = DistributedApplication.CreateBuilder();
// implementazione della cache e del comando di reset
var cache = builder.AddRedis("test-cache")
.WithHttpCommand("reset", "Reset Cache",
commandName: "reset-cache",
commandOptions: new HttpCommandOptions
{
Method = HttpMethod.Delete,
Description = "Clear all cached test data"
});
var api = builder.AddProject<Projects.TestApi>("test-api")
.WithReference(cache);
await using var app = builder.Build();
await app.StartAsync();
// Reset cache
var result = await app.ResourceCommands.ExecuteCommandAsync(
cache.Resource,
"reset-cache",
CancellationToken.None);
Assert.True(result.Success, $"Failed to reset cache: {result.ErrorMessage}");
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare la content-visibility in CSS specificando lo spazio da occupato dall'area non renderizzata
Referenziare un package NuGet in una file based app .NET
Impostare automaticamente l'altezza del font tramite CSS
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Blue/Green Release in locale con .NET Aspire
Configurare OpenAI in .NET Aspire
Running workloads and operations with Azure Kubernetes Service
Modificare lo stile in una QuickGrid Blazor
Utilizzare AbortController per cancellare operazioni asincrone in JavaScript
Gestire il ciclo di vita di AbortController in Javascript
Definire il metodo di rilascio in .NET Aspire
Arricchire l'interfaccia di .NET Aspire


