Junior — Middle
Kuidas sõltuvuste vastupidine pööramine aitab koodi testimise protsessi lihtsustada?
sobes.tech AI
Vastus AI-lt
Sõltuvuste pööramise põhimõte (Dependency Inversion Principle) võimaldab kõrgetasemelisel logikal olla sõltumatu madalama taseme sõltuvuste konkreetsetest rakendustest, asendades need abstraktsioonidega (näiteks liidestega). See lihtsustab testimist, kuna testides saab kasutada mock'e või stub'e reaalsete sõltuvuste asemel, ilma testitavat koodi muutmata.
Näide C#-s:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* kirjutamine faili */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger;
}
public void CreateUser(string name)
{
// kasutaja loomise loogika
_logger.Log($"Kasutaja {name} loodud");
}
}
// Testides saab edastada mock ILogger:
public class MockLogger : ILogger
{
public List<string> Messages = new List<string>();
public void Log(string message) => Messages.Add(message);
}
Sel viisil ei sõltu testid reaalsetest rakendustest ning saab logikat isoleeritult kontrollida.