Marchenkova compares React Test Renderer and Enzyme, two common approaches before 2018. Test Renderer enabled snapshots and tree queries, while Enzyme's shallow rendering made it difficult to test user behavior and encouraged direct access to component state and methods.
Testing Library Meets React Native
Speakers
Callstack software engineers Maria Marchenkova and Michał Pierzchała speak at React Native EU 2020 about the development and consolidation of Testing Library for React Native.
Marchenkova describes React Testing Library's guiding idea: tests should resemble how people use software, focusing on visible UI rather than implementation details. She demonstrates rendering a component, clicking a button, and waiting for a greeting to appear, using queries based on text and accessibility roles.
React Native runs JavaScript without a browser DOM, so the web library could not be reused directly. Callstack built React Native Testing Library as a thin layer over React Test Renderer, initially including some shallow and implementation-focused queries to help teams migrate from Enzyme.
Marchenkova recounts how Native Testing Library emerged with a closer fit to Testing Library principles, while the two projects differed on APIs, goals, and ownership. After early discussions failed to produce a merger, React Native Testing Library v2 removed shallow rendering, added APIs such as `within` and `findBy`, and discouraged unsafe queries. Kent C. Dodds later proposed deprecating Native Testing Library and adopting Callstack's project as the official `@testing-library/react-native` package.
Marchenkova says to focus on users, keep improving a product you believe in, and make maintenance manageable. She credits the library's thin layer over stable React tools with helping it survive React Native changes, and notes that company support for open source can also bring community recognition.
Takeaways
- Test what users can see and do instead of relying on component internals.
- Accessibility roles and visible text make queries reflect real user interactions.
- A thin layer over stable tools can reduce the maintenance burden of an open-source library.
- Plan migrations carefully, especially when removing APIs or consolidating packages.
- Company support can sustain open source work, while business interests can shape project decisions.
Mentioned in this talk
Search inside this talk
What was claimed 11
- works atMichał Pierzchała works at
Callstacksoftware engineer“We work at Callstack as software engineers”
YouTube Unverified1 source· Talk
- works atMaria Marchenkova works at
Callstacksoftware engineer“We work at Callstack as software engineers”
YouTube Unverified1 source· Talk
- usesa thin abstraction layer
“we use React Test Renderer”
1:10inWhat Is React Native Testing LibraryYouTube Verified4 sources· Talk
- built
“developed by Callstack”
2:06inHow React Native Testing Library is different from Native Testing LibraryYouTube Verified4 sources· Talk
- role atKent C. Dodds is creator at
Testing Library
“React Testing Library, created by Kent C. Dodds”
YouTube Unverified1 source· Talk
- built
“the developer behind Native Testing Library, Brandon Carroll”
YouTube Unverified1 source· Talk
- featureNative Testing Library: Became the official Testing Library for React Native
“NTL became the official Testing Library for React Native”
YouTube Unverified1 source· Talk
- featureReact Native Testing Library: V2 removed shallow rendering and added within and findBy queries
“We decided to remove shallow rendering”
YouTube Unverified1 source· Talk
- role at
Callstack is maintainer at React Native Testing Library“keep the source code and documentation under Callstack”
YouTube Unverified1 source· Talk
- featureReact Native Testing Library: Renamed to @testing-library/react-native
“rename React Native Testing Library to @testing-library/react-native”
YouTube Unverified1 source· Talk
- featureNative Testing Library: Deprecated and archived as part of the agreement to consolidate the libraries
“deprecate and archive Native Testing Library”
YouTube Unverified1 source· Talk





