{"id":16514081,"url":"https://github.com/rieckpil/java-testing-toolbox","last_synced_at":"2025-04-06T20:11:43.259Z","repository":{"id":37967151,"uuid":"344468555","full_name":"rieckpil/java-testing-toolbox","owner":"rieckpil","description":":wrench: Testing Tools \u0026 Libraries Every Java Developer Must Know","archived":false,"fork":false,"pushed_at":"2025-02-24T07:07:41.000Z","size":814,"stargazers_count":64,"open_issues_count":7,"forks_count":31,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-06T05:08:58.951Z","etag":null,"topics":["assertj","awaitility","gatling","greenmail","hamcrest","java","jmeter","jsonpath","junit4","junit5","mockito","pact","rest-assured","selenide","selenium","spock","testcontainers","testing","wiremock","xmlunit"],"latest_commit_sha":null,"homepage":"https://rieckpil.de/testing-tools-and-libraries-every-java-developer-must-know/","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/rieckpil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-03-04T12:34:48.000Z","updated_at":"2025-03-07T22:25:27.000Z","dependencies_parsed_at":"2024-01-10T05:15:27.828Z","dependency_job_id":"e9848f0a-cfbb-4043-a084-5cbce2ab46ee","html_url":"https://github.com/rieckpil/java-testing-toolbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fjava-testing-toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fjava-testing-toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fjava-testing-toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rieckpil%2Fjava-testing-toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rieckpil","download_url":"https://codeload.github.com/rieckpil/java-testing-toolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247543593,"owners_count":20955865,"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","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":["assertj","awaitility","gatling","greenmail","hamcrest","java","jmeter","jsonpath","junit4","junit5","mockito","pact","rest-assured","selenide","selenium","spock","testcontainers","testing","wiremock","xmlunit"],"created_at":"2024-10-11T16:11:21.781Z","updated_at":"2025-04-06T20:11:43.239Z","avatar_url":"https://github.com/rieckpil.png","language":"Java","readme":"# Hands-On Introduction to the Java Testing Ecosystem\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://rieckpil.de/testing-tools-and-libraries-every-java-developer-must-know/\"\u003e\n    \u003cimg src=\"https://rieckpil.de/wp-content/uploads/2021/04/testing-tools-and-libraries-every-java-developer-must-know-book-cover-1-e1617971322966.png\" alt=\" Book Cover\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nThis repository contains the source code for the book *30 Testing Tools \u0026 Libraries Every Java Developer Must Know*.\n\n## About the Book\n\nTesting is a critical part of software development, and **having** **the** **right tools** can make all the difference.\n\nThis book introduces you to **30 essential testing tools and libraries**, carefully selected to cover a wide range of testing needs—from unit testing and assertions to mocking, integration testing, and performance testing.\n\nEach tool is presented in a **cookbook-style format**, with clear explanations and **hands-on examples** that you can apply directly to your projects.\n\n## What You'll Learn\n\n- Enrich your testing toolbox with 30 carefully curated tools and libraries.\n- Choose the right tool for the job by understanding the strengths and use cases of each.\n- Explore the Java testing ecosystem through practical, real-world examples.\n- Apply testing best practices to your Spring Boot, Jakarta EE, or any Java application.\n- Gain hands-on experience with each tool through dedicated examples and exercises.\n\n## Current Status\n\n[![Maven Build](https://github.com/rieckpil/java-testing-ecosystem/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/rieckpil/java-testing-ecosystem/actions/workflows/build.yml)\n\nThe book is now complete with 30/30 tools and libraries covered.\n\nYou can grab your copy [here](https://rieckpil.de/testing-tools-and-libraries-every-java-developer-must-know/).\n\n## Repository Overview\nThis repository contains the source code for the examples used in the book. The examples are organized into two projects:\n\n- `spring-boot-example`: Demonstrates testing tools and libraries in the context of a Spring Boot application. You'll find most of the code examples here.\n- `jakarta-ee-example`: Showcases testing tools and libraries using a Jakarta EE application.\n\nEach tool and library has its dedicated Java package within the `spring-boot-example/src/test/java/de/rieckpil/blog` directory of the respective project.\n\nThe only exception is MicroShed Testing, which is part of the jakarta-ee-example project.\n\n## Build \u0026 Test\n\nRequirements:\n\n- Java 21: Verify with `java -version`\n- A running Docker engine: `docker info`\n\nBuild the project and run all tests with:\n\n```shell\ncd spring-boot-example\n./mvnw verify\n\ncd jakarta-ee-example\n./mvnw verify\n```\n\n### Covered Test Frameworks\n\n- [x] JUnit 4\n- [x] JUnit 5\n- [x] TestNG\n- [x] Spock\n\n### Covered Assertion Libraries\n\n- [x] AssertJ\n- [x] JsonPath\n- [x] Hamcrest\n- [x] XMLUnit\n- [x] JSONAssert\n- [x] REST Assured\n\n### Covered Mocking Frameworks\n\n- [x] Mockito\n- [x] WireMock\n- [x] MockWebServer\n\n### Covered Test Infrastructure\n\n- [x] Testcontainers\n- [x] LocalStack\n- [x] MicroShed Testing\n- [x] GreenMail\n- [x] Selenide\n- [x] Selenium\n\n### Covered Behavior Driven Testing (BDT)\n\n- [x] JGiven\n\n### Covered Utility Libraries\n\n- [x] Pact\n- [x] Diffblue\n- [x] Pit\n- [x] Instancio\n- [x] ArchUnit\n- [x] Awaitility\n\n### Covered Performance Testing Tools\n\n- [x] Gatling\n- [x] ApacheBench\n- [x] JMH\n- [x] JfrUnit\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frieckpil%2Fjava-testing-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frieckpil%2Fjava-testing-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frieckpil%2Fjava-testing-toolbox/lists"}