Sobes.tech
Junior — Middle

როგორ უწყობს დამოკიდებულებების საპირისპირო მიმართულება კოდის ტესტირების პროცესის გამარტივებას?

sobes.tech AI

პასუხი AI-სგან

დამოკიდებულების გადაბრუნების პრინციპი (Dependency Inversion Principle) საშუალებას აძლევს მაღალი დონის ლოგიკამ იყოს დამოუკიდებელი კონკრეტული დამოკიდებულებების რეალიზაციიდან, მათ ნაცვლად გამოიყენოს აბსტრაქციები (მაგალითად, ინტერფეისები). ეს ამარტივებს ტესტირებას, რადგან ტესტებში შესაძლებელია გამოიყენოთ მოკები ან სტუბები რეალურ დამოკიდებულებათა ნაცვლად, და ეს არ შეცვლის ტესტირებად კოდს.

C# მაგალითი:

public interface ILogger
{
    void Log(string message);
}

public class FileLogger : ILogger
{
    public void Log(string message) { /* ფაილში ჩაწერა */ }
}

public class UserService
{
    private readonly ILogger _logger;
    public UserService(ILogger logger)
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // მომხმარებლის შექმნის ლოგიკა
        _logger.Log($"მომხმარებელი {name} შექმნილი
}

// ტესტებში შეიძლება გადაეცეს მოკი ILogger:
public class MockLogger : ILogger
{
    public List<string> Messages = new List<string>();
    public void Log(string message) => Messages.Add(message);
}

ამ გზით, ტესტები არ არიან დამოკიდებული რეალურ რეალიზაციებზე და შეუძლიათ ლოგიკის იზოლირებული შემოწმება.