Rut is a DOM-less React testing library that aims to be lightweight, encourage great testing practices, and reduce flakiness and code smells. It is a wrapper and abstraction around react-test-renderer that simplifies the test writing process, while doing all the hard work behind the scenes.
This package provides core functionality for adapters to expand upon. For example, a DOM adapter for
react-dom, a mobile native adapter for
react-native, or even a custom adapter unique to your
- Type safe by design. Test with confidence.
- First-class async support. Wait for async calls to finish before returning a rendered result. (Experimental)
act()integration. Let Rut do the heavy lifting.
- Update a component with new props, children, or a completely new element.
- Unmount a component to verify cleanup and destructor based logic.
- Dispatch DOM level events with a mocked synthetic event (and propagation coming soon!).
- Wrap all renders with a defined wrapping component and or
- Apply pre-built mocks for robust and accurate testing.
- Utilize an array of pre-built matchers for easily querying, expecting, and asserting.
- React 16.9+ (Rut v1)
- React 17+ (Rut v2)
yarn add --dev rut react