For more information about testing, see the following sources:

  • JUnit: "A programmer-friendly testing framework for Java." Used by the Spring Framework in its test suite and supported in Spring TestContext Framework.

  • TestNG: JUnit-based testing framework with support for test groups, data-driven testing, distributed testing, and more . Supported in Spring TestContext Framework

  • AssertJ: "Smoothly add assertions for Java" including support for lambdas, streams, and more Java 8 features.

  • Mock Objects: Wikipedia article.

  • MockObjects.com: Website dedicated to mock objects, a method for improving code structure in development via testing.

  • Mockito: Java mock object library based on the Test Spy. Used by the Spring Framework in its test suite.

  • EasyMock: A Java library "that provides mock objects for interfaces (and objects via class extension) by generating them on the fly using the proxy mechanism in Java."

  • JMock: A library that supports test-driven development of Java code using mock objects.

  • DbUnit: A JUnit extension (also used with Ant and Maven) designed for projects built on top of databases, and which, among other things, brings your database into a normal state between test iterations.

  • Testcontainers: Java library supporting tests from JUnit, providing lightweight, one-time instances of common databases, web -Selenium browsers and everything else that can be done in a Docker container.

  • The Grinder: Java load testing framework.

  • SpringMockK: A tool to support Spring Boot integration tests written in Kotlin using MockK instead of Mockito.