Sobes.tech
Junior — Middle

Πώς συμβάλλει η αντιστροφή των εξαρτήσεων στη διευκόλυνση της διαδικασίας δοκιμής του κώδικα;

sobes.tech AI

Απάντηση από AI

Η αρχή της Αντιστροφής των Εξαρτήσεων (Dependency Inversion Principle) επιτρέπει στον υψηλού επιπέδου κώδικα να είναι ανεξάρτητος από τις χαμηλού επιπέδου υλοποιήσεις, βασιζόμενος σε αφαιρέσεις (π.χ. διεπαφές). Αυτό διευκολύνει τις δοκιμές, καθώς μπορούν να χρησιμοποιηθούν mocks ή stubs στις δοκιμές αντί για πραγματικές εξαρτήσεις, χωρίς να αλλάξει ο κώδικας που δοκιμάζεται.

Παράδειγμα σε 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}");
    }
}

// Στα τεστ, μπορεί να περαστεί ένα mock του ILogger:
public class MockLogger : ILogger
{
    public List<string> Messages = new List<string>();
    public void Log(string message) => Messages.Add(message);
}

Έτσι, τα τεστ δεν εξαρτώνται από πραγματικές υλοποιήσεις και μπορούν να ελέγξουν τη λογική απομονωμένα.