Встречается на собеседованиях • сегодня
Как напишешь Unit тест для кода, который взаимодействует с почтой
Для тестирования кода, взаимодействующего с почтой, можно использовать мок-объекты или фреймворки вроде unittest.mock. Вот пример теста для функции отправки email:
python
from unittest.mock import patch
import smtplib
import pytest
def send_email(to, subject, body):
server = smtplib.SMTP('smtp.example.com')
server.sendmail('from@example.com', to, f"Subject: {subject}\n\n{body}")
server.quit()
@patch('smtplib.SMTP')
def test_send_email(mock_smtp):
# Подготовка мок-объекта
mock_server = mock_smtp.return_value
text
# Вызов тестируемой функции
send_email('to@example.com', 'Test', 'Hello')
# Проверки
mock_smtp.assert_called_once_with('smtp.example.com')
mock_server.sendmail.assert_called_once_with(
'from@example.com',
'to@example.com',
'Subject: Test\n\nHello'
)
mock_server.quit.assert_called_once()text
Ключевые моменты:
1. Используем `unittest.mock.patch` для замены реального SMTP
2. Проверяем, что были вызваны нужные методы с правильными аргументами
3. Для более сложных случаев можно использовать библиотеки типа `pytest-mock` или `mailpit` для тестового SMTP сервера
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы