Testing Utilities
Various Utilities used in testing. This module contains a number of utilities
and helpers to help with testing. It consists of a number of mostly independent
parts.
See morimekta.net/utils for procedures on releases.
Getting Started
To add to maven: Add this line to pom.xml under dependencies:
<dependencies>
<dependency>
<groupId>net.morimekta.utils</groupId>
<artifactId>testing</artifactId>
<version>5.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.morimekta.utils</groupId>
<artifactId>testing-junit4</artifactId>
<version>5.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.morimekta.utils</groupId>
<artifactId>testing-junit5</artifactId>
<version>5.6.1</version>
<scope>test</scope>
</dependency>
</dependencies>
To add to gradle: Add this line to the dependencies group in build.gradle:
testImplementation 'net.morimekta.utils:testing:5.6.1'
testImplementation 'net.morimekta.utils:testing-junit4:5.6.1'
testImplementation 'net.morimekta.utils:testing-junit5:5.6.1'
Testing
General testing utilities.
Concurrency Utils
FakeClock: A fake java.time.Clock that keeps constant time and is ticked manually.FakeScheduledExecutor: A scheduled executor that uses a fake clock and 'ticking' of that to trigger scheduled tasks. Using a real executor in the background.ImmediateExecutor: A fake executor that executes tasks when they are submitted. This means they run while waiting forsubmitto return, so all tasks are completed immediately.ImmediateScheduledExecutor: A fake scheduled executor that uses a fake clock and 'ticking' of that to trigger scheduled tasks in the same thread as triggers the tick. Submitted tasks are always handled in theticklistener.
Console Utils
Console: An interface to interact with a console during testing.ConsoleManager: Base class for managing a fake console during testing that will capture whats written to standard OUT and ERR and replace standard IN.
I/O and File Utils
ResourceUtil: Some simple utils for getting hand on resource content.TestConfigMap: A class wrapping around a directory to make it behave as a kubernetes ConfigMap.
Text Utils
EnglishWords: A super-light text and word generator.
JUnit 4
Utilities specialized for JUnit 4.
ConsoleWatcher: A junit4@Ruleto set up and reset the console.DataProviderUtil: Utility for generating matrices of arguments to from a data provider usingcom.tngtech.java:junit-dataprovider.
JUnit 5
Utilities specialized for JUnit 5.
ConsoleExtension: A junit5 extension to set up and reset the console, and give access toConsoleandTTYparameters.ParamsProviderUtil: Utility for generating matrices of arguments to from a params provider.DataSourceExtension: A junit 5 extension to set up a JDBC data source to be used in testing.
Major Version Changes
4.x->5.x: FakeScheduledExecutor renamed ImmediateScheduledExecutor and new FakeScheduledExecutor created using a real background executor, but using the fake clock to trigger the scheduled tasks.