# Введение Контрактное тестирование или Consumer Driven Contract (CDC) - грубо, тестирование микросервиса в режиме черного ящика. # Технологии 99% всей информации о контрактом тестиривании в .NET это Pact. ## Pact сайт: https://pact.io github: https://github.com/pact-foundation github .NET: https://github.com/pact-foundation/pact-net Pact - это программный инструмент для тестирования интеграции HTTP и сообщений с использованием контрактных тестов. Это инструмент не только для CDC в мире .NET, а в целом большое сообщество с поддержкой большого количества языков и платформ Pactflow - рассказывается про CDC и почему это круто, и почему не круто, и как Pact помогает с этим жить, 4-5 роликов по минут 10-20 https://youtube.com/playlist?list=PLwy9Bnco-IpfZ72VQ7hce8GicVZs7nm0i Пример работы https://github.com/pact-foundation/pact-net/blob/master/README_v1.md ## Pact AMQP Pact себя позиционируют в CDC для AMQP в такой схеме 1) Никаких реальных очередей при тестировании не будет - эту роль играет сам Pact в обоих случая(Consumer, Producer) 2) В случае Consumer'а Pact как бы исполняет роль очереди и пушит сообщение в него - тем самым проверяя бизнес-логику и формируя "конфиг" контракта, после записывая куда-то(файл или pact-broker) 3) В случае Producer Pact "Invoke function to produce the message" как я понял, Pact триггерит Producer'а создать сообщения для очереди, а потом Pact его сверяет с тем что нагенерировал во время тестов Consumer'а