awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
awaitility avatar

awaitility/awaitility

0
View on GitHub↗
4,013 stars·259 forks·Java·Apache-2.0·13 views

Awaitility

Awaitility is a Java asynchronous testing library and conditional polling framework. It provides a fluent domain-specific language to synchronize tests with asynchronous operations by polling for specific states or conditions.

The library allows for the configuration of polling intervals, timeouts, and the assignment of specific threads or services to handle background polling. It includes mechanisms for deadlock detection, exception filtering to treat specific errors as false results, and the ability to fail fast when a prohibited condition is met.

The framework covers state verification, including the monitoring of atomic variables and the verification that specific conditions persist over a defined duration. It also integrates with external assertion libraries to evaluate conditions during asynchronous synchronization.

Features

  • Promise-Based State Polling - Provides a mechanism to repeatedly evaluate predicates over time intervals to synchronize tests with asynchronous state changes.
  • Asynchronous State Verifications - Acts as a specialized framework for verifying that asynchronous operations eventually reach a desired state via conditional polling.
  • Domain Specific Languages - Implements a fluent domain-specific language for declarative configuration of polling behavior and timeouts.
  • Exception Suppression - Suppresses specific exception types during polling so they are treated as false rather than failing the test.
  • Polling Exception Filters - Allows specific exceptions to be ignored during polling, treating them as unsuccessful attempts rather than test failures.
  • Condition Persistence Verifications - Asserts that a specific condition remains true for a defined duration of time.
  • Test Background Work Synchronization - Provides mechanisms to synchronize test execution with asynchronous background processes to eliminate flaky assertions.
  • Conditional Polling Frameworks - Implements a configurable polling framework with timeouts and exception handling to wait for asynchronous state changes.
  • Asynchronous Polling Mechanisms - Provides mechanisms to configure the thread or service that executes the background polling of asynchronous functions.
  • Asynchronous Test Handling - Provides capabilities for synchronizing tests by waiting for specific states or values to appear in the application.
  • Timeout-Based Verifications - Implements timeout-based verification that compares system state against a boolean supplier to determine success.
  • Asynchronous Testing Utilities - Provides a Java-specific DSL for synchronizing tests with asynchronous operations through conditional polling.
  • Condition Fail-Fast Controls - Immediately terminates a test when a prohibited condition is met before the desired state is reached.
  • Polling Thread Control - Allows control over which thread executes the polling process, including the option to use the current test thread.
  • Atomic State Coordination - Monitors atomic structures and shared state using atomic references until a specific value or boolean state is reached.
  • Task Status Polling - Implements patterns for checking the completion status of background tasks at defined intervals.
  • Custom Thread Executors - Provides the ability to define custom threading contexts and executors for managing how polling conditions are evaluated.
  • Value Maintenance Verifications - Ensures a specific condition remains true for a minimum duration within a maximum time window.
  • Deadlock and Starvation Detection - Analyzes thread states during timeouts to identify circular dependencies and locking issues in multi-threaded application code.
  • Asynchronous Assertions - Integrates with external assertion libraries to perform asynchronous state validation during synchronization.
  • Polling Interval Strategies - Offers configurable polling intervals using fixed times, mathematical sequences, or custom logic.
  • Testing Frameworks - DSL for synchronizing asynchronous operations.

Star history

Star history chart for awaitility/awaitilityStar history chart for awaitility/awaitility

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Awaitility

These projects share indexed features with Awaitility. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • quick/nimbleQuick avatar

    Quick/Nimble

    4,841View on GitHub↗

    Nimble is a matcher framework and assertion library designed for Swift and Objective-C unit tests. It extends standard testing frameworks to provide a domain-specific language for writing descriptive and readable assertions. The project provides utilities for behavior driven development and asynchronous state verification. This includes the ability to wait for expressions to match specific values over a set period of time to verify timing-dependent behavior. The framework covers general test automation and validation for Swift and Objective-C projects, allowing developers to compare code exp

    Swiftasynchronous-expectationsbddfailure-messages
    View on GitHub↗4,841
  • testing-library/react-hooks-testing-librarytesting-library avatar

    testing-library/react-hooks-testing-library

    5,266View on GitHub↗

    This project is a specialized test harness and mocking utility designed for unit testing React hooks in isolation. It provides a simulated component environment that executes hook logic and tracks returned values without requiring a full user interface. The library enables the verification of hook lifecycles, including mounting, updating, and unmounting phases. It features mechanisms for injecting properties to force re-renders and an asynchronous waiting system to ensure state updates are processed before assertions are run. The toolset covers state management verification, automated lifecy

    TypeScriptjavascriptreact-hooksreactjs
    View on GitHub↗5,266
  • jnicklas/capybarajnicklas avatar

    jnicklas/capybara

    10,166View on GitHub↗

    Capybara is a browser automation testing library and framework for web application acceptance testing. It provides a high-level API for automating browser navigation and element interaction to validate user-facing features. The project features a cross-browser driver interface that allows switching between headless and full browser environments without modifying the underlying test code. This abstraction enables the simulation of complex web workflows across different browser drivers and environments. The suite covers user interaction simulation, including form filling, click events, and bro

    Ruby
    View on GitHub↗10,166
  • callstack/react-native-testing-librarycallstack avatar

    callstack/react-native-testing-library

    3,390View on GitHub↗

    This project is a testing framework designed for React Native applications, providing a suite of tools to render components in a controlled memory environment. It enables developers to verify the behavior and structure of mobile interfaces by simulating user interactions and monitoring component lifecycle transitions. By isolating components from the rest of the application, it ensures that tests remain stable and independent. The framework distinguishes itself through an accessibility-first approach, prioritizing user-facing attributes like roles, labels, and text content when querying the c

    TypeScriptjestreactreact-native
    View on GitHub↗3,390
Compare all 30 related projects→

Frequently asked questions

What does awaitility/awaitility do?

Awaitility is a Java asynchronous testing library and conditional polling framework. It provides a fluent domain-specific language to synchronize tests with asynchronous operations by polling for specific states or conditions.

What are the main features of awaitility/awaitility?

The main features of awaitility/awaitility are: Promise-Based State Polling, Asynchronous State Verifications, Domain Specific Languages, Exception Suppression, Polling Exception Filters, Condition Persistence Verifications, Test Background Work Synchronization, Conditional Polling Frameworks.

Which projects share features with awaitility/awaitility?

Projects with overlapping indexed features include: quick/nimble — Nimble is a matcher framework and assertion library designed for Swift and Objective-C unit tests. It extends standard… testing-library/react-hooks-testing-library — This project is a specialized test harness and mocking utility designed for unit testing React hooks in isolation. It… jnicklas/capybara — Capybara is a browser automation testing library and framework for web application acceptance testing. It provides a… callstack/react-native-testing-library — This project is a testing framework designed for React Native applications, providing a suite of tools to render… avajs/ava — Ava is a test runner for JavaScript and TypeScript designed to execute test suites with a focus on concurrency and… gatling/gatling — Gatling is a load testing framework and traffic generation engine used to measure response times and error rates under…