Sobes.tech
Junior — Middle

Dasturiy tizimlar uchun integratsiya testlarini yaratish va bajarish bo'yicha tajribangiz bormi?

sobes.tech AI

AIdan javob

Ha, men C# tilida integratsiya testlarini yaratish va bajarish bo'yicha tajribaga egaman. Odatda NUnit yoki xUnit kabi frameworklardan foydalanaman, shuningdek, Moq kabi mock kutubxonalar va test muhitini yaratish uchun Docker yoki o'rnatilgan test serverlari kabi vositalardan foydalanaman.

Integratsiya testlari tizimning bir nechta komponentlarining o'zaro ta'sirini tekshiradi, masalan, controller bilan ma'lumotlar bazasi va xizmatlar. Quyida xUnit va Entity Framework Core InMemory yordamida oddiy integratsiya testining misoli keltirilgan:

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, xizmatning ma'lumotlar bazasi bilan to'g'ri ishlashini tekshiradi, bu esa birlik testlaridan tashqariga chiqadi va ilovaning haqiqiy ish faoliyatiga yaqinlashadi.