{"id":20721690,"url":"https://github.com/chicio/contract-tests","last_synced_at":"2025-07-27T00:34:51.228Z","repository":{"id":83568153,"uuid":"110357708","full_name":"chicio/Contract-Tests","owner":"chicio","description":"An example java project created for my blog post \"A first approach to contract test\"","archived":false,"fork":false,"pushed_at":"2021-12-28T08:44:51.000Z","size":11,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-14T20:08:39.746Z","etag":null,"topics":["contract-testing","java","tdd","unit-test"],"latest_commit_sha":null,"homepage":"https://www.fabrizioduroni.it/blog/","language":"Java","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":"2017-11-11T15:44:49.000Z","updated_at":"2023-03-09T02:05:32.000Z","dependencies_parsed_at":"2023-07-07T19:33:25.651Z","dependency_job_id":null,"html_url":"https://github.com/chicio/Contract-Tests","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chicio/Contract-Tests","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chicio","download_url":"https://codeload.github.com/chicio/Contract-Tests/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chicio%2FContract-Tests/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267276977,"owners_count":24063219,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"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":["contract-testing","java","tdd","unit-test"],"created_at":"2024-11-17T03:29:00.030Z","updated_at":"2025-07-27T00:34:51.179Z","avatar_url":"https://github.com/chicio.png","language":"Java","readme":"# Contract Tests\n\n[![Build Status](https://travis-ci.org/chicio/Contract-Tests.svg?branch=master)](https://travis-ci.org/chicio/Contract-Tests)\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/chicio/Contract-Tests/master/LICENSE.md)\n\nAn example java project created for my blog post [\"A first approach to contract test\"](https://www.fabrizioduroni.it/2017/07/25/a-first-approach-to-contract-test/ \"A first approach to contract test\").\n\n### Description\n\nThe app contains and example of how much powerful are contract test and how they can help you to avoid duplication while writing your unit tests.\nBelow an article quote:\n\n\u003e Sometimes you have to unit test multiple implementations of the same interface. So basically you have the same tests for multiple concrete implementation of the same interface. In a case like this one, contract test could help you save a lot of time. Using contract test you will be able to run the same set of test for different concrete implementations.\nHow does it work? The main point is to have a template base abstract \"ContractTest\" test class that incapsulate the logic of the tests using abstract methods that use the base interface of the objects under test. These abstract methods will be implmented in the subclasses of this \"ContractTest\" class and they will feed the test with a concrete implementation of the interface used in the declaration of the abstract methods.\n\nClick [here](https://www.fabrizioduroni.it/2017/07/25/a-first-approach-to-contract-test.html \"A first approach to contract test\") to read the post.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchicio%2Fcontract-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchicio%2Fcontract-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchicio%2Fcontract-tests/lists"}