# airbnb/enzyme

**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/airbnb-enzyme).**

19,831 stars · 1,972 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/airbnb/enzyme
- Homepage: https://enzymejs.github.io/enzyme/
- awesome-repositories: https://awesome-repositories.com/repository/airbnb-enzyme.md

## Description

Enzyme is a JavaScript component testing utility and test suite used to verify the behavior and rendered output of user interface components. It provides tools for simulating user interactions, updating component properties, and asserting that the resulting interface state matches expected outcomes.

The project utilizes a pluggable adapter system to connect different user interface frameworks, allowing for consistent testing patterns across various libraries and versions. This architecture enables the verification of components across multiple UI library versions and different test runners.

Its capabilities cover a range of component testing methods, including shallow rendering to isolate units under test and dynamic mounting for full lifecycle verification. The utility supports state manipulation, event simulation, and output verification to facilitate frontend regression testing and general test automation.

## Tags

### Testing & Quality Assurance

- [JavaScript Application Testing](https://awesome-repositories.com/f/testing-quality-assurance/javascript-application-testing.md) — Provides a comprehensive toolset for automating the verification of JavaScript and TypeScript UI components.
- [Component and Interaction Testing](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/component-interaction-testing.md) — Includes utilities for mounting components and simulating user inputs to verify UI interactions. ([source](https://github.com/airbnb/enzyme#readme))
- [Component Mounting Utilities](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/component-interaction-testing/component-mounting-utilities.md) — Includes utilities to mount components into a simulated DOM for full lifecycle and deep rendering verification.
- [React Testing Utilities](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/unit/react-testing-utilities.md) — Offers specialized helpers for rendering, querying, and interacting with React components in unit tests.
- [Output Assertions](https://awesome-repositories.com/f/testing-quality-assurance/testing-best-practices-methodologies/quality-assurance-practices/testing-methodologies/behavior-driven-testing/component-state-verification/output-assertions.md) — Provides a process for inspecting and asserting the rendered output of components to ensure UI correctness. ([source](https://github.com/airbnb/enzyme#readme))
- [Component State Manipulators](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/component-interaction-testing/component-state-manipulators.md) — Allows for altering the runtime state of components to simulate interactions and state changes for verification. ([source](https://github.com/airbnb/enzyme#readme))
- [Regression Testing Suites](https://awesome-repositories.com/f/testing-quality-assurance/regression-testing-suites.md) — Facilitates regression testing to ensure UI components remain functional across library version updates.
- [Cross-Version Compatibility Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/component-testing/cross-version-compatibility-testing.md) — Provides a pluggable adapter system to verify component behavior across different versions of UI libraries. ([source](https://github.com/airbnb/enzyme#readme))

### Development Tools & Productivity

- [UI Component Test Suites](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/test-suites/web-component-testing-suites/ui-component-test-suites.md) — Ships a framework for inspecting component state and asserting UI behavior across different library versions.

### Software Engineering & Architecture

- [Cross-Framework Integration Layers](https://awesome-repositories.com/f/software-engineering-architecture/cross-framework-integration-layers.md) — Connects different user interface frameworks to a consistent testing system via a pluggable architecture.
- [Event Triggering](https://awesome-repositories.com/f/software-engineering-architecture/event-triggering.md) — Implements mechanisms to programmatically fire synthetic events to verify the resulting interface state updates.
- [Integration Adapters](https://awesome-repositories.com/f/software-engineering-architecture/integration-adapters.md) — Provides an architectural abstraction layer to decouple testing commands from specific UI library implementations.
- [UI Framework Adapters](https://awesome-repositories.com/f/software-engineering-architecture/ui-framework-adapters.md) — Ships a pluggable adapter system to maintain consistent testing patterns across different UI libraries. ([source](https://github.com/airbnb/enzyme#readme))

### User Interface & Experience

- [Shallow Renderers](https://awesome-repositories.com/f/user-interface-experience/component-rendering-engines/shallow-renderers.md) — Provides a shallow rendering engine to isolate components from their children during unit testing.
- [Virtual DOM Engines](https://awesome-repositories.com/f/user-interface-experience/virtual-dom-engines.md) — Utilizes a virtual DOM engine to represent the component tree for inspection without a full browser.

### DevOps & Infrastructure

- [Component State Injectors](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/state-inspection-tools/runtime-state-modifiers/component-state-injectors.md) — Allows direct modification of internal component state and props to simulate specific runtime scenarios.

### Web Development

- [State Simulation Utilities](https://awesome-repositories.com/f/web-development/frontend-development-tools/state-data-management/component-lifecycle-utilities/component-state-management/state-simulation-utilities.md) — Enables changing internal component state and properties to test responses to diverse data inputs.

### Part of an Awesome List

- [Testing Tools](https://awesome-repositories.com/f/awesome-lists/devtools/testing-tools.md) — Testing utilities for component inspection.
