# wix/Detox

**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/wix-detox).**

11,816 stars · 1,913 forks · JavaScript · mit

## Links

- GitHub: https://github.com/wix/Detox
- Homepage: https://wix.github.io/Detox/
- awesome-repositories: https://awesome-repositories.com/repository/wix-detox.md

## Topics

`android` `automation` `e2e-tests` `hacktoberfest` `hacktoberfest2024` `ios` `javascript` `react-native` `test-automation` `testing` `testing-tools`

## Description

Detox is a gray-box end-to-end testing framework designed for mobile applications. It automates user interactions and verifies interface states by synchronizing test execution with the internal readiness of the application, ensuring that scripts wait for background tasks, network requests, and animations to complete before proceeding.

The framework distinguishes itself through native-side binary instrumentation, which allows it to monitor the application message queue and query the native view hierarchy in real time. By interacting directly with the application process, it avoids reliance on coordinate-based inputs, providing a more stable method for locating elements and confirming interface behavior across both iOS and Android platforms.

This tool supports comprehensive quality assurance by enabling the automation of complex user flows on physical devices and virtual simulators. It provides a unified approach to cross-platform testing, allowing developers to maintain consistent test logic while ensuring that application components function correctly within their native environments.

## Tags

### Testing & Quality Assurance

- [Mobile End-to-End Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/e2e-integration-testing/mobile-end-to-end-testing.md) — Automates end-to-end user flows on mobile devices by synchronizing test execution with the internal state of the application.
- [Mobile Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/test-levels-and-types/mobile-testing-frameworks.md) — Provides a mobile-specific testing framework that uses native binary instrumentation to prevent flaky UI tests.
- [User Interaction Simulation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation.md) — Simulates user actions on physical devices and simulators by tracking application state for predictable test sequences. ([source](https://wix.github.io/Detox/docs/introduction/getting-started))
- [Asynchronous Interaction Utilities](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/assertion-extensions-modes/asynchronous-interaction-utilities.md) — Ensures test scripts wait for background tasks and network requests to complete before interacting with interface elements.
- [State Synchronization Utilities](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/end-to-end-testing-suites/application-testing/state-synchronization-utilities.md) — Synchronizes test execution with the application interface readiness to prevent failures from timing issues. ([source](https://wix.github.io/Detox/docs/introduction/getting-started))

### Mobile Development

- [Android Automation Frameworks](https://awesome-repositories.com/f/mobile-development/automation-qa/android-automation-frameworks.md) — Simulates user behavior on iOS and Android devices to verify interface responsiveness and application flow.
- [Quality Assurance](https://awesome-repositories.com/f/mobile-development/automation-qa/quality-assurance.md) — Verifies that critical user flows and interface states remain stable and predictable throughout the mobile development lifecycle.

### System Administration & Monitoring

- [Dynamic Binary Instrumentation](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry/dynamic-binary-instrumentation.md) — Injects libraries into application binaries to intercept system events and query the view hierarchy in real time.
- [Instrumentation Libraries](https://awesome-repositories.com/f/system-administration-monitoring/instrumentation-libraries.md) — Instruments application binaries to intercept system events and query the native view hierarchy.

### User Interface & Experience

- [Application State Querying](https://awesome-repositories.com/f/user-interface-experience/application-state-managers/application-state-querying.md) — Queries the current UI state to verify that interface elements appear or disappear as expected during test execution. ([source](https://wix.github.io/Detox/docs/introduction/getting-started))
- [Hierarchy Traversers](https://awesome-repositories.com/f/user-interface-experience/component-hierarchies/hierarchy-traversers.md) — Traverses the live native UI tree to locate elements and extract properties without relying on coordinate-based inputs.

### Development Tools & Productivity

- [Synchronization Hooks](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/application-extensions/internal-application-interfaces/synchronization-hooks.md) — Monitors internal application message queues and network activity to pause test execution until the interface is idle.

### Software Engineering & Architecture

- [Human-in-the-Loop Workflows](https://awesome-repositories.com/f/software-engineering-architecture/human-in-the-loop-workflows.md) — Pauses automated test execution to await application readiness, ensuring stable interaction with the interface.
