Czym Jest Dependency Injection? (Z Przyk艂adami)

Oto klasa, kt贸rej nie przetestujesz jednostkowo bez dzia艂aj膮cej bazy danych i serwera SMTP: 1 2 3 4 5 6 7 8 9 10 11 public class OrderService { private readonly SqlOrderRepository _repository = new SqlOrderRepository("Server=prod-db;Database=Orders;..."); private readonly SmtpEmailSender _emailSender = new SmtpEmailSender("smtp.company.com"); public void PlaceOrder(Order order) { _repository.Save(order); _emailSender.Send(order.CustomerEmail, "Order confirmed"); } } OrderService tworzy w艂asne instancje SqlOrderRepository i SmtpEmailSender przez new, razem z connection stringiem. Ka偶dy test dotykaj膮cy PlaceOrder potrzebuje prawdziwej bazy Orders i dzia艂aj膮cego serwera pocztowego, inaczej padnie, zanim dojdzie do asercji. Logika, kt贸r膮 chcesz przetestowa膰, to dwie linijki: zapisz zam贸wienie, wy艣lij potwierdzenie. Jest zespawana z dwiema konkretnymi klasami, kt贸rych nie da si臋 podmieni膰. ...

1 pa藕dziernika 2026 路 7 min 路 1384 s艂贸w 路 SpaghettiCoder