Sobes.tech
Junior — Middle

Tem experiência na criação e execução de testes de integração para sistemas de software?

sobes.tech IA

Resposta da IA

Sim, tenho experiência na criação e execução de testes de integração em C#. Normalmente, uso frameworks como NUnit ou xUnit, juntamente com bibliotecas de mocking (por exemplo, Moq) e ferramentas para levantar ambientes de teste (como Docker ou servidores de teste integrados).

Os testes de integração verificam a interação de vários componentes do sistema, por exemplo, o funcionamento do controlador com o banco de dados e os serviços. Aqui está um exemplo simples de teste de integração usando xUnit e Entity Framework Core InMemory:

public class UserServiceIntegrationTests
{
    private readonly UserService _userService;
    private readonly DbContextOptions<AppDbContext> _options;

    public UserServiceIntegrationTests()
    {
        _options = new DbContextOptionsBuilder<AppDbContext>()
            .UseInMemoryDatabase(databaseName: "TestDb")
            .Options;

        var context = new AppDbContext(_options);
        _userService = new UserService(context);
    }

    [Fact]
    public void AddUser_ShouldAddUserToDatabase()
    {
        var user = new User { Id = 1, Name = "Test User" };
        _userService.AddUser(user);

        using var context = new AppDbContext(_options);
        var addedUser = context.Users.Find(1);
        Assert.NotNull(addedUser);
        Assert.Equal("Test User", addedUser.Name);
    }
}

Este tipo de teste verifica se o serviço interage corretamente com a base de dados, o que vai além dos testes unitários e aproxima-se do funcionamento real da aplicação.