Sobes.tech
Junior — Middle

Proqram təminatı sistemləri üçün inteqrasiya testlərinin yaradılması və həyata keçirilməsi təcrübəniz varmı?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, mən C#-da inteqrasiya testlərinin yaradılması və icrası üzrə təcrübəyə malikəm. Adətən, NUnit və ya xUnit kimi çərçivələrdən, eləcə də Moq kimi mock kitabxanalarından və test mühitini qurmaq üçün Docker və ya daxili test serverləri kimi vasitələrdən istifadə edirəm.

İnteqrasiya testləri sistemin bir neçə komponentinin qarşılıqlı əlaqəsini yoxlayır, məsələn, nəzarətçinin verilənlər bazası və xidmətlərlə işləməsi. Budur, xUnit və Entity Framework Core InMemory istifadə edərək sadə bir inteqrasiya testinin nümunəsi:

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

Bu test, xidmətin verilənlər bazası ilə düzgün işlədiyini yoxlayır, bu isə vahid testlərin xaricindədir və tətbiqin real işləmə vəziyyətinə yaxınlaşır.