/awaitility

Awaitility is a small Java DSL for synchronizing asynchronous operations

Primary LanguageJavaApache License 2.0Apache-2.0

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());
    ...
}

News

  • 2021-05-08: Awaitility 4.1.0 is released. This release includes fail-fast conditions as well as some bug fixes and dependency updates. See changelog for details.
  • 2020-05-19: Awaitility 4.0.3 is released. This release includes updates to ConditionEvaluationLogger as well as several depdency updates. If you're using the Groovy DSL beaware that Groovy has been upgraded from 2.x to 3.x. See changelog for details.
  • 2020-01-03: Awaitility 4.0.2 is released. This release includes support for asserting that a condition is maintained for specific duration, improvments to ConditionEvaluationListener as well as several bug fixes and other improvements. See changelog for details.

Older news

Documentation

Links

Buy Me A Coffee