Определение теста интеграции производителя Kafka - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть код приложения, который создает события для Kafka Topi c. Так что теперь мне нужно было написать интеграционные тесты для него. После поиска по inte rnet меня смутило определение интеграционного теста о том, должен ли я использовать встроенный сервер Kafka, предоставляемый библиотекой spring-kafka-test, или я должен протестировать свой код с фактическим кластером Kafka, который я собираюсь использовать?

Каким будет тест интеграции? Кто-нибудь, пожалуйста, помогите прояснить мою путаницу.

Мой тест будет таким: сначала создайте запись для topi c, а затем используйте ее, независимо от того, произвела ли она на самом деле.

1 Ответ

0 голосов
/ 23 февраля 2020

У каждого проекта могут быть разные потребности, и поэтому каждый разработчик может подумать, что чего-то или недостаточно.

Более полный (но дорогой) набор тестов:

  1. Тестирование в изоляции производителя
  2. Тестирование производителя со встроенной kafka
  3. Тестирование производителя с помощью экземпляра kafka с тестовой конфигурацией (один узел, локальный)
  4. Тестирование производитель с kafka с конфигурацией производства в промежуточная среда (многоузловая, на реальном сервере, но в "тестовой среде", как конвейер CI / CD)
  5. тестирование производителя в фактическом производстве для Проведите стресс-тестирование производственного сервера и убедитесь, что продукт работает хорошо (подумайте Simian Army )

Сколько из этого стоит, зависит от вас:

  • Я сделаю 1, потому что TDD
  • 3 также дешево, делает 2 избыточными и дает вам уверенность в том, что фактическая «интеграция» работает, я всегда делаю 3 .
  • 4 необходимо и комм для любого продукта в производстве, его автоматизация на уровне 3.
  • 5 достигается только несколькими компаниями, на самом деле это стоит немалых денег, чтобы «напасть на себя» в реальной производственной среде, просто чтобы убедиться, что все отлично работает.

Каждый тестовый слой важен настолько, насколько вы придаете ему важность, и может показаться «покрытием», потому что определенные ошибки возникают только на следующем слое.

...