TestContainers

Тема тестирования довольно большая. Обычно при вопросе о тестах хотят услышать, что как минимум вы иногда их пишите 😂 И обсудить подходы. Можно рассказать когда больше нравится писать интеграционные тесты, когда unit. Решил написать о https://testcontainers.com/?language=dotnet - точно будет в тему если будете рассказывать о том как поднять окружение для интеграционных тестов. Кратко - можно описать редис, базу очередь и так далее на c# при этом при запуске оно поднимется в docker контейнерах. А еще можно настроить у этого всего интеграцию с гитлаб, чтобы там это тоже работало.

Вот например пример кода с их сайта для postgres `using Testcontainers.PostgreSql;

namespace Customers.Tests;

public sealed class CustomerServiceTest : IAsyncLifetime { private readonly PostgreSqlContainer _postgres = new PostgreSqlBuilder() .WithImage("postgres:15-alpine") .Build();

public Task InitializeAsync() { return _postgres.StartAsync(); }

public Task DisposeAsync() { return _postgres.DisposeAsync().AsTask(); }

[Fact] public void ShouldReturnTwoCustomers() { // Given var customerService = new CustomerService(new DbConnectionProvider(_postgres.GetConnectionString()));

// When customerService.Create(new Customer(1, "George")); customerService.Create(new Customer(2, "John")); var customers = customerService.GetCustomers();

// Then Assert.Equal(2, customers.Count()); } }

#middle`