{"id":20721692,"url":"https://github.com/chicio/contract-testing-asynchronous-messaging-pact","last_synced_at":"2026-06-10T09:31:25.387Z","repository":{"id":83568143,"uuid":"421320059","full_name":"chicio/Contract-Testing-Asynchronous-Messaging-Pact","owner":"chicio","description":"A sample project for my blog post \"\", where I show how to create write contract tests for an asynchronous messaging architecture with 📁🤝 Pact, Junit 5 and MockK 📁🤝.","archived":false,"fork":false,"pushed_at":"2021-11-08T15:38:29.000Z","size":77,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T08:18:08.058Z","etag":null,"topics":["arrow-kt","event-driven","junit5","kotlin","messaging","messaging-app","mockk","pact","pact-broker"],"latest_commit_sha":null,"homepage":"https://www.fabrizioduroni.it","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chicio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-26T07:14:41.000Z","updated_at":"2023-03-09T02:05:32.000Z","dependencies_parsed_at":"2023-07-07T19:32:18.064Z","dependency_job_id":null,"html_url":"https://github.com/chicio/Contract-Testing-Asynchronous-Messaging-Pact","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chicio/Contract-Testing-Asynchronous-Messaging-Pact","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Testing-Asynchronous-Messaging-Pact","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Testing-Asynchronous-Messaging-Pact/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Testing-Asynchronous-Messaging-Pact/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Testing-Asynchronous-Messaging-Pact/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chicio","download_url":"https://codeload.github.com/chicio/Contract-Testing-Asynchronous-Messaging-Pact/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Testing-Asynchronous-Messaging-Pact/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34146871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arrow-kt","event-driven","junit5","kotlin","messaging","messaging-app","mockk","pact","pact-broker"],"created_at":"2024-11-17T03:29:00.425Z","updated_at":"2026-06-10T09:31:25.305Z","avatar_url":"https://github.com/chicio.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contract Testing Asynchronous Messaging with Pact and MockK\n\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/chicio/Contract-Testing-Asynchronous-Messaging-Pact/master/LICENSE.md)\n\nA sample project for my blog post [Contract testing asynchronous messaging with Pact and MockK](https://www.fabrizioduroni.it/2021/11/05/contract-testing-asynchronous-messaging-pact-junit-mockk/), where I show how to create write contract tests for an asynchronous messaging architecture with [Pact](https://docs.pact.io \"pact\") and [MockK](https://mockk.io \"mockk\").\n\n### Description\n\nThis is a quote from the post:\n\n\u003e...In the last weeks I worked with my colleague [Felice Giovinazzo](https://www.linkedin.com/in/felice-giovinazzo-17277b55/) \non a new feature for the refund process (as may already know from some of\n[my previous posts](/2020/12/23/rest-template-webclient-spring-boot/ \"kotlin spring boot\") in the last 2 years I \nworked mainly on backend applications). In this new feature we have a messaging-based communication between\nmicroservices. The messaging system used is [RabbitMQ](https://www.rabbitmq.com \"rabbitmq\"). In \n[lastminute.com group](https://www.lastminute.com) we are already using [Pact](https://docs.pact.io \"pact doc\") to \nimplement contract testing for the classic RESTful interaction between microservices...\n\nClick on the link above to read the posts.\n\n# How to \n\nIf you wanna try the example in this repository you just have to:\n\n* start the pact broker by launching the following commands:\n\n```shell\ncd pact-broker\ndocker-compose up\n```\n\n* execute the test of the `AccountService` consumer and publish the contract with the following maven command:\n\n```shell\nmvn pact:publish\n``` \n\n* execute the test of the `RefundService` producer to verify the pact published\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchicio%2Fcontract-testing-asynchronous-messaging-pact","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchicio%2Fcontract-testing-asynchronous-messaging-pact","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchicio%2Fcontract-testing-asynchronous-messaging-pact/lists"}