awaitility

Introduction: Awaitility is a small Java DSL for synchronizing asynchronous operations
More: Author   ReportBugs   
Tags:

Awaitility

Build Status Maven Central Javadoc

Testing asynchronous systems is hard. Not only does it require handling threads, timeouts and concurrency issues, but the intent of the test code can be obscured by all these details. Awaitility is a DSL that allows you to express expectations of an asynchronous system in a concise and easy to read manner. For example:

@Test
public void updatesCustomerStatus() {
    // Publish an asynchronous message to a broker (e.g. RabbitMQ):
    messageBroker.publishMessage(updateCustomerStatusMessage);
    // Awaitility lets you wait until the asynchronous operation completes:
    await().atMost(5, SECONDS).until(customerStatusIsUpdated());
    ...
}
  • 2019-09-06: Awaitility 4.0.1 is released and it fixes a regression issue in which the condition evaluation duration could be evaluated to a negative number of nanoseconds on Windows. It also drops the dependency to objenesis since it's no longer used after moving to Java 8. See changelog for details.
  • 2019-08-30: Awaitility 4.0.0 is released! Java 8+ is now required which allows for both dependency and API updates. See release notes and changelog for details.
  • 2019-07-15: Awaitility 4.0.0-rc1 is released. This release requires Java 8 or above. Please try it out and provide feedback. See changelog for details and upgrade instructions.

Older news

Documentation

Apps
About Me
Google+: Trinea trinea
GitHub: Trinea