# quick/nimble

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/quick-nimble).**

4,841 stars · 609 forks · Swift · Apache-2.0

## Links

- GitHub: https://github.com/Quick/Nimble
- Homepage: https://quick.github.io/Nimble/documentation/nimble/
- awesome-repositories: https://awesome-repositories.com/repository/quick-nimble.md

## Topics

`asynchronous-expectations` `bdd` `failure-messages` `matcher-functions` `operator-overloads` `swift` `swift-assertions` `swift-generics` `testing`

## Description

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 expression outcomes against expected values.

## Tags

### Testing & Quality Assurance

- [Outcome Assertions](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/input-validation/agent-input-and-output-validators/automated-assertion-validators/action-result-validators/outcome-assertions.md) — Implements a domain-specific language for writing descriptive assertions to verify that code execution results match expected outcomes. ([source](https://cdn.jsdelivr.net/gh/quick/nimble@main/README.md))
- [Asynchronous State Verifications](https://awesome-repositories.com/f/testing-quality-assurance/asynchronous-state-verifications.md) — Enables testing of code relying on timers or network calls by waiting for specific conditions to be met.
- [Asynchronous Expectation Pollers](https://awesome-repositories.com/f/testing-quality-assurance/asynchronous-test-execution/asynchronous-model-testing/asynchronous-state-snapshots/asynchronous-expectation-pollers.md) — Provides the ability to wait for expressions to match specific values over a period of time to verify timing-dependent behavior. ([source](https://cdn.jsdelivr.net/gh/quick/nimble@main/README.md))
- [Asynchronous Test Handling](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-execution-controls/asynchronous-test-handling.md) — Provides synchronization capabilities for managing tests that rely on asynchronous operations and timing-dependent behavior.
- [Objective-C Test Automation](https://awesome-repositories.com/f/testing-quality-assurance/objective-c-test-automation.md) — Provides a matcher framework and assertion library specifically designed for Objective-C unit tests.
- [Swift Matcher Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/swift-matcher-frameworks.md) — Provides a domain-specific language for writing descriptive and readable assertions in Swift and Objective-C unit tests.
- [Assertion Libraries](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/assertions-and-validation/assertion-validation-utilities/assertion-libraries.md) — Supplies a collection of matcher functions that extend standard frameworks like XCTest to provide more expressive verification.
- [Behavior Driven Development Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/test-levels-and-types/behavior-driven-development-frameworks.md) — Provides a descriptive, natural language-like DSL for defining software requirements through behavior-driven assertions.

### Programming Languages & Runtimes

- [Swift Testing Tools](https://awesome-repositories.com/f/programming-languages-runtimes/swift-testing-tools.md) — Offers a specialized matcher framework for writing and running automated tests within Swift applications.

### Part of an Awesome List

- [Testing and Quality](https://awesome-repositories.com/f/awesome-lists/devtools/testing-and-quality.md) — Matcher framework for assertions.
- [Testing Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/testing-frameworks.md) — Matcher framework for expressive assertions.
