Junior — Middle
Ako prispieva inverzia závislostí k uľahčeniu procesu testovania kódu?
sobes.tech AI
Odpoveď od 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);
}
Овим приступом, тестови нису зависни од стварних имплементација и могу изоловано проверити логику.