java-testing-toolbox
java-testing-toolbox copied to clipboard
:wrench: Testing Tools & Libraries Every Java Developer Must Know
Hands-On Introduction to the Java Testing Ecosystem
This repository contains the source code for the book 30 Testing Tools & Libraries Every Java Developer Must Know.
You can find the source code for the various testing tools & libraries within spring-boot-example/src/test/java/de/rieckpil/blog
. Each tool & library has its dedicated Java package.
The only exception to this rule is MicroShed Testing, which is part of the jakarta-ee-example
project.
Current Status: 20/30 tools and libraries are covered. The final release (30/30) is scheduled for Q1 2024.
Grab your copy here.
Goals of the Book
- Enrich your existing testing toolbox
- Use the right tool for the job
- Inform about various tools & libraries of the Java testing ecosystem
- Cookbook-style introduction for each testing tool & library
- Hands-on testing examples that apply for testing any Java application
Build & Test
Requirements:
- Java 11:
java -version
- A running Docker engine (required for Testcontainers):
docker info
Build the project and run all tests with:
cd spring-boot-example
./mvnw verify
cd jakarta-ee-example
./mvnw verify
Content
The book uses a Spring Boot and Jakarta EE application to demonstrate the different tools & libraries. Both sample applications only use a minimal subset of Spring Boot/Jakarta EE features so that you can easily apply the knowledge to your tech stack.
Test Frameworks
- [x] JUnit 4
- [x] JUnit 5
- [x] TestNG
- [x] Spock
- [ ] ...
Assertion Libraries
- [x] AssertJ
- [x] JsonPath
- [x] Hamcrest
- [x] XMLUnit
- [x] JSONAssert
- [x] REST Assured
- [ ] ...
Mocking Frameworks
- [x] Mockito
- [x] WireMock
- [x] MockWebServer
- [ ] PowerMock
- [ ] ...
Test Infrastructure
- [x] Testcontainers
- [x] LocalStack
- [x] MicroShed Testing
- [ ] Citrus
- [x] GreenMail
- [ ] Selenium
- [ ] ...
Utility Libraries
- [x] Selenide
- [ ] Pact (upcoming)
- [ ] Spring Cloud Contract (upcoming)
- [ ] Diffblue
- [ ] FitNesse
- [ ] Awaitility (upcoming)
- [ ] ...
Performance Testing
- [ ] JMH (upcoming)
- [ ] JMeter (upcoming)
- [x] Gatling
- [ ] Quick Perf
- [x] ApacheBench
- [ ] ...