Разделите тестирование на API-контракт, публикацию событий, обработку consumers и сквозные финансовые инварианты; особое внимание — повторам, порядку, отказам и сверке состояния.
Проект обрабатывает финансовые данные: вход синхронный по API, далее асинхронная коммуникация через Kafka. Как бы ты организовал его тестирование?
Разделите тестирование на API-контракт, публикацию событий, обработку consumers и сквозные финансовые инварианты; особое внимание — повторам, порядку, отказам и сверке состояния.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Разделите тестирование на API-контракт, публикацию событий, обработку consumers и сквозные финансовые инварианты; особое внимание — повторам, порядку, отказам и сверке состояния.
Для входного API проверяют валидацию, права и идемпотентность. Для Kafka — схему, ключ и связь с операцией. Consumers проверяют на повторную и запоздалую доставку, восстановление после сбоя и ошибочные сообщения. Денежные расчёты должны быть точными, без двойного списания или потери операции. В E2E используют уникальные данные и ограниченное ожидание, а не sleep. Неопределённый результат требует reconciliation; внешние платежи в обычных тестах подменяют.