Junior — Middle
Hogyan segíti az függőségek fordított irányba történő megfordítása a kód tesztelésének folyamatát?
sobes.tech MI
Válasz az MI-től
A Függőség Fordítási Elv (Dependency Inversion Principle) lehetővé teszi, hogy a magas szintű logika független legyen az alacsony szintű függőségek konkrét megvalósításaitól, azokat absztrakciókkal (például interfészekkel) helyettesítve. Ez megkönnyíti a tesztelést, mivel a tesztekben helyettesítőket vagy mockokat lehet használni a valódi függőségek helyett anélkül, hogy módosítani kellene a tesztelt kódot.
Példa C#-ban:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* írás fájlba */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger;
}
public void CreateUser(string name)
{
// felhasználó létrehozási logika
_logger.Log($"Felhasználó {name} létrehozva");
}
}
// Tesztekben át lehet adni egy mock ILogger-t:
public class MockLogger : ILogger
{
public List<string> Messages = new List<string>();
public void Log(string message) => Messages.Add(message);
}
Így a tesztek nem függenek a valódi megvalósításoktól, és izoláltan ellenőrizhetik a logikát.