16 **(Deprecated)** [Enzyme](http://airbnb.io/enzyme) lets you write unit tests for React components. This guide covers a previous version (v2.x).
22 import {shallow, mount} from 'enzyme'
27 wrap = shallow(<MyComponent />)
31 wrap = mount(<MyComponent />)
34 Shallow wrapping doesn't descend down to sub-components.
35 A full mount also mounts sub-components.
36 See: [Shallow rendering](http://airbnb.io/enzyme/docs/api/shallow.html),
37 [Full rendering](http://airbnb.io/enzyme/docs/api/mount.html)
42 import toJson from 'enzyme-to-json'
48 wrap = mount(<MyComponent />)
49 expect(toJson(wrap)).toMatchSnapshot()
53 Converts an Enzyme wrapper to a format compatible with Jest snapshots. See: [enzyme-to-json](https://www.npmjs.com/package/enzyme-to-json)
58 console.log(wrap.debug())
61 Shows HTML for debugging purposes. See: [debug()](http://airbnb.io/enzyme/docs/api/ReactWrapper/debug.html)
68 wrap.find('button') // => ReactWrapper
69 wrap.filter('button') // => ReactWrapper
70 wrap.not('span') // => ReactWrapper (inverse of filter())
71 wrap.children() // => ReactWrapper
72 wrap.parent() // => ReactWrapper
73 wrap.closest('div') // => ReactWrapper
74 wrap.childAt(0) // => ReactWrapper
75 wrap.at(0) // => ReactWrapper
76 wrap.first() // => ReactWrapper
77 wrap.last() // => ReactWrapper
81 wrap.get(0) // => ReactElement
82 wrap.getNode() // => ReactElement
83 wrap.getNodes() // => Array<ReactElement>
84 wrap.getDOMNode() // => DOMComponent
87 See: [Full rendering API](http://airbnb.io/enzyme/docs/api/mount.html)
92 wrap.simulate('click')
98 wrap.setState({ ... })
99 wrap.setProps({ ... })
100 wrap.setContext({ ... })
102 wrap.state() // => Any (get state)
103 wrap.props() // => object (get props)
104 wrap.context() // => Any (get context)
106 wrap.instance() // => ReactComponent
114 wrap.update() // calls forceUpdate()
120 wrap.debug() // => string
121 wrap.html() // => string
122 wrap.text() // => string
123 wrap.type() // => string | function
124 wrap.name() // => string
125 wrap.is('.classname') // => boolean
126 wrap.hasClass('class') // => boolean
127 wrap.exists() // => boolean
128 wrap.contains(<div />) // => boolean
129 wrap.contains([ <div /> ]) // => boolean
131 wrap.containsMatchingElement(<div />) // => boolean
132 wrap.containsAllMatchingElements([ <div /> ]) // => boolean
133 wrap.containsAnyMatchingElements([ <div /> ]) // => boolean
138 - <https://airbnb.io/enzyme>