Назад к вопросам
Junior — Middle
67
Как реализовать единичное тестирование для модуля, отправляющего и получающего электронную почту?
Ответ от нейросети
sobes.tech AI
Для единичного тестирования модуля, который отправляет и получает электронную почту, важно изолировать тестируемый код от реальной почтовой системы. Для этого используют мок-объекты или заглушки.
В Python можно применить библиотеку unittest.mock для замены функций отправки почты на фиктивные, чтобы проверить, что они вызываются с правильными параметрами.
Пример с использованием unittest и mock:
from unittest import TestCase
from unittest.mock import patch
class EmailModule:
def send_email(self, to, subject, body):
# Реальная отправка почты
pass
class TestEmailModule(TestCase):
@patch('path.to.EmailModule.send_email')
def test_send_email(self, mock_send):
email_module = EmailModule()
email_module.send_email('test@example.com', 'Hello', 'Body text')
mock_send.assert_called_once_with('test@example.com', 'Hello', 'Body text')
Для получения почты можно замокать методы, которые получают сообщения, или использовать локальный SMTP-сервер для тестирования.