Sobes.tech
Junior — Middle

Vai jums ir pieredze programmatūras sistēmu integrācijas testu izstrādē un veikšanā?

sobes.tech AI

Atbilde no AI

Jā, man ir pieredze integrācijas testu izveidē un izpildē C# valodā. Parasti es izmantoju tādus ietvarus kā NUnit vai xUnit, kopā ar mocking bibliotēkām (piemēram, Moq) un rīkiem testēšanas vides uzstādīšanai (piemēram, Docker vai iebūvēti testu serveri).

Integrācijas testi pārbauda vairākas sistēmas komponentu savstarpējo mijiedarbību, piemēram, kontroliera darbību ar datu bāzi un pakalpojumiem. Šeit ir vienkāršs integrācijas testa piemērs, izmantojot xUnit un 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);
    }
}

Šis tests pārbauda, vai pakalpojums pareizi sadarbojas ar datu bāzi, kas pārsniedz vienību testus un tuvojas reālajai lietojumprogrammas darbībai.