Встречается на собеседованиях • сегодня

Легче ли тестировать код с Dependency Injection

Да, код с Dependency Injection (DI) легче тестировать, так как он позволяет заменять реальные зависимости на моки или заглушки во время тестов. Это делает тесты изолированными, предсказуемыми и быстрыми.

Пример без DI:

python
class OrderProcessor:
    def process(self, order):
        payment_gateway = PaymentGateway()  # Жесткая зависимость
        payment_gateway.charge(order.total)

Пример с DI:

python
class OrderProcessor:
    def __init__(self, payment_gateway):
        self.payment_gateway = payment_gateway  # Внедрение зависимости
    
    def process(self, order):
        self.payment_gateway.charge(order.total)

Теперь можно легко протестировать:

python
def test_order_processor():
    mock_gateway = Mock()
    processor = OrderProcessor(mock_gateway)
    order = Order(total=100)
    processor.process(order)
    mock_gateway.charge.assert_called_with(100)

DI упрощает модульное тестирование, уменьшает связанность кода и делает его более гибким.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы