Comment changer facilement des paramètres lors de tests avec WebApplicationFactory ?

Pour des tests d'intégrations, il peut être compliqué de produire un fichier de configuration pour tester l'impacte de chaque paramètre.

Heureusement, avec WebApplicationFactory, il est possible de définir un paramètre dans son test via la méthode UseSetting.


public sealed class ProgramTests(WebApplicationFactory<Program> webApplicationFactory)
 : IClassFixture<WebApplicationFactory<Program>>
    {
        [Theory]
        [InlineData("/")]
        [InlineData("/error")]
        public async Task Test1(String url)
        {
            using HttpClient client = webApplicationFactory
                .WithWebHostBuilder(b =>
                {
                    b.UseEnvironment("xUnit");
                    b.UseSetting("Authentication:Type", "Internal");
                })
                .CreateClient();
 
	// ...
        }

Cerise sur le gâteau, contrairement à d'autres approches le paramètre est disponible avant l'ajout des services. Si votre application s'appuie sur des paramètres pour déduire les services à enregistrer, votre code devient testable.

Jérémy Jeanson

Comments

You have to be logged in to comment this post.