Detox
What is Detox?
Detox (developed and open-sourced by Wix) takes a grey-box approach to mobile testing: unlike Appium (black-box, WebDriver) or XCUITest (white-box, in-process), Detox communicates with both the test runner and the app runtime simultaneously. This allows Detox to know when the app is 'idle', all animations complete, all network requests resolved, all JS microtasks flushed, before proceeding to the next test step. The result is near-zero flakiness without any explicit waits. Detox works natively on both iOS (using the XCUITest driver under the hood) and Android. It is the recommended E2E framework for React Native projects and is used in production by Wix, Microsoft, and dozens of other large-scale React Native apps.
Related terms
Detox, frequently asked questions
Detox is 'grey-box': it has direct communication with the React Native runtime, allowing it to synchronise with the app's idle state before each assertion. Appium is 'black-box': it drives the app via the accessibility tree with no insight into JS thread state. This synchronisation is why Detox tests are significantly more reliable and faster than equivalent Appium tests on React Native apps.
Yes. Detox supports iOS (using XCUITest under the hood) and Android (using Espresso). The same test code runs on both platforms, with platform-specific matchers available when needed. React Native's unified component model means most test code is truly cross-platform.