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()); } }