Sobes.tech
Junior — Middle

Máte skúsenosti s tvorbou a vykonávaním integračných testov pre softvérové systémy?

sobes.tech AI

Odpoveď od AI

Áno, mám skúsenosti s tvorbou a vykonávaním integračných testov v C#. Zvyčajne používam frameworky ako NUnit alebo xUnit, spolu s knižnicami na mockovanie (napríklad Moq) a nástrojmi na nastavenie testovacieho prostredia (napríklad Docker alebo zabudované testovacie servery).

Integračné testy overujú interakciu viacerých komponentov systému, napríklad fungovanie kontroléra s databázou a službami. Tu je jednoduchý príklad integračného testu s použitím xUnit a 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);
    }
}

Tento test overuje, či služba správne komunikuje s databázou, čo presahuje jednotkové testy a približuje sa k reálnemu fungovaniu aplikácie.