# testing-library

Published articles for testing-library.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## AI-assisted migration from Enzyme to React Testing Library

DevFeed: [AI-assisted migration from Enzyme to React Testing Library](<https://devfeed.tech/articles/the-pulse-we-need-to-talk-about-migrations-with-ai-40929.md>)

Original publisher: [Read original article](<https://blog.pragmaticengineer.com/the-pulse-we-need-to-talk-about-migrations-with-ai/>)

Author: Ivan Klaric

Published: 2026-08-27T18:04:54Z

Content type: article

Language: en

Sources: [The Pragmatic Engineer](<https://devfeed.tech/sources/the-pragmatic-engineer-2.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [migration](<https://devfeed.tech/topics/migration.md>), [testing-library](<https://devfeed.tech/topics/testing-library.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [codex](<https://devfeed.tech/topics/codex.md>), [React Native](<https://devfeed.tech/topics/react-native.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [codex](<https://devfeed.tech/tags/codex.md>), [migration](<https://devfeed.tech/tags/migration.md>), [migrations](<https://devfeed.tech/tags/migrations.md>), [openai](<https://devfeed.tech/tags/openai.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>)

### AI overview

The article examines Asana's migration from Enzyme to React Testing Library and discusses how AI-assisted coding, including OpenAI Codex, may make large testing-system migrations more practical. It compares the different testing approaches and syntax used by the two libraries.

### Source excerpt

Asana migrated off testing framework Enzyme in two weeks: without AI, this work would surely have been kicked down the road. Airbnb and Uber share similar stories and AI seems excellent at migrations.

## Migrating 76,000 Tests from Enzyme to React Testing Library

DevFeed: [Migrating 76,000 Tests from Enzyme to React Testing Library](<https://devfeed.tech/articles/moving-mountains-how-we-migrated-from-enzyme-to-react-testing-library-29109.md>)

Original publisher: [Read original article](<https://product.hubspot.com/blog/migrated-from-enzyme-to-react-testing-library>)

Author: Charley Pugmire

Published: 2025-11-13T18:31:47Z

Content type: tutorial

Language: en

Sources: [HubSpot](<https://devfeed.tech/sources/hubspot.md>)

Topics: [testing-library](<https://devfeed.tech/topics/testing-library.md>), [React](<https://devfeed.tech/topics/react.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [migration](<https://devfeed.tech/topics/migration.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>)

Tags: [engineering](<https://devfeed.tech/tags/engineering.md>), [migration](<https://devfeed.tech/tags/migration.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

The article explains how a team migrated more than 76,000 tests from Enzyme to React Testing Library over two and a half years. It describes the shift toward user-focused UI tests, the planning process, and the limits of using static analysis alone to estimate the work.

### Source excerpt

For years, Enzyme was the de facto standard for testing React applications. Originally built by Airbnb in 2015, Enzyme makes it easy to assert, manipulate, and traverse the output of React components. The last official release of Enzyme came after React 16 was launched in 2017, but even then did not fully support all React 16 features. Ongoing support for Enzyme shifted to the open source community with React 17. However, the creator of the community-maintained Enzyme adapter announced that he would not be offering an updated version for React 18. This effectively marked the end of the Enzyme project, as it would prevent users from leveraging new features like React 18's concurrent mode.

## I got my first promotion in 10 months

DevFeed: [I got my first promotion in 10 months](<https://devfeed.tech/articles/i-got-my-first-promotion-in-10-months-39997.md>)

Original publisher: [Read original article](<https://www.saiyangrowthletter.com/p/i-got-my-first-promotion-in-10-months>)

Author: Tiger Abrodi

Published: 2024-04-07T13:11:46Z

Content type: opinion

Language: en

Sources: [Saiyan Growth Letter](<https://devfeed.tech/sources/saiyan-growth-letter.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [testing-library](<https://devfeed.tech/topics/testing-library.md>), [React](<https://devfeed.tech/topics/react.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [axe-devtools](<https://devfeed.tech/tags/axe-devtools.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

The author describes moving from junior to mid-level developer in 10 months. They attribute the promotion to improving website accessibility, using screen readers and Axe DevTools, sharing accessible coding practices, introducing pair reviews and a stop-and-fix practice, and documenting performance APIs in React.

### Source excerpt

Sharing what I did and learned along the way

## Snapshot Testing Libraries for Android: Paparazzi vs Shot

DevFeed: [Snapshot Testing Libraries for Android: Paparazzi vs Shot](<https://devfeed.tech/articles/snapshot-testing-libraries-for-android-paparazzi-vs-shot-42189.md>)

Original publisher: [Read original article](<https://medium.com/astronauts-id/snapshot-testing-libraries-for-android-paparazzi-vs-shot-d3e7427ea534?source=rss----f54da6775e90---4>)

Author: Fajar Febriyan

Published: 2024-02-29T03:56:36Z

Content type: comparison

Language: en

Sources: [astronauts-id - Medium](<https://devfeed.tech/sources/astronauts-id-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [screenshot-testing](<https://devfeed.tech/topics/screenshot-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [testing-library](<https://devfeed.tech/topics/testing-library.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [compare](<https://devfeed.tech/tags/compare.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [developers](<https://devfeed.tech/tags/developers.md>), [screenshot-testing](<https://devfeed.tech/tags/screenshot-testing.md>), [testing](<https://devfeed.tech/tags/testing.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>)

### AI overview

This comparison explains snapshot testing for Android UI components and contrasts the Shot and Paparazzi libraries. It covers visual regression detection, cross-device consistency, setup, golden images, and verification.

### Source excerpt

What is snapshot testing? Snapshot testing, also known as screenshot testing, is an automated testing technique that captures screenshots of User Interface (UI) components and compares them against reference images. The idea is simple: we save a reference screenshot of a UI component in a known good state, and during testing, we capture a new screenshot and compare it to the reference. If these two images match, the test passes; if not, it fails. Comparing the golden image (real pineapple) with the image (pineapple illustration)Then why snapshot testing? According to the Testing Pyramid, UI testing, also known as, end-to-end testing is a type of testing recommended to be carried out in application development. UI testing is basically a mechanism meant to test the UI aspect of any software that users come into contact with. One way to do this is with a simple concept not requiring painful scenarios which is the snapshot testing. The image above is referenced from Martin Fowler's post regarding the Test Pyramid Snapshot testing is beneficial for various reasons: Visual Regression Detection: It helps identifying unintended visual changes introduced during development. Ease of Use: Writing snapshot tests is often simpler and more intuitive than crafting complex UI test scripts. Cross-Platform Testing: Snapshot tests can be used to ensure consistency across various Android devices and configurations. Let's dive into the libraries We chose to discuss and compare these 2 libraries because they have different methods and produce different results. Shot Shot is an open-source snapshot testing library developed by Pedro Vicente Gómez Sánchez. It integrates seamlessly with popular testing frameworks like JUnit and Espresso, making it a popular choice among Android developers. Paparazzi Paparazzi is another popular snapshot testing library developed by Cash App. It offers robust screenshot comparison and supports testing on a wide range of Android devices. How it works? Setup:

## Testing API Calls With React Testing Library and Jest

DevFeed: [Testing API Calls With React Testing Library and Jest](<https://devfeed.tech/articles/testing-api-calls-with-react-testing-library-and-jest-37594.md>)

Original publisher: [Read original article](<https://www.taniarascia.com/how-to-test-useeffect-api-call/>)

Author: hello@taniarascia.com

Published: 2022-12-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tania Rascia](<https://devfeed.tech/sources/tania-rascia.md>)

Topics: [testing-library](<https://devfeed.tech/topics/testing-library.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [React](<https://devfeed.tech/topics/react.md>), [API](<https://devfeed.tech/topics/api.md>), [Jest](<https://devfeed.tech/topics/jest.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [jest](<https://devfeed.tech/tags/jest.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

A tutorial showing how to test React useEffect API calls with Jest and React Testing Library, including tests for successful and failed requests.

### Source excerpt

Ever since Hooks were released in React, we've been using the hook to fetch data, whether directly or abstracted away behind Redux Thunks...

## Testing Library ByRole Performance Improvements

DevFeed: [Testing Library ByRole Performance Improvements](<https://devfeed.tech/articles/testing-library-byrole-performance-improvements-19750.md>)

Original publisher: [Read original article](<https://tech.findmypast.com/testing-libraray-byrole-performance-improvements/>)

Author: Jonathan Darrer

Published: 2022-04-13T00:00:00Z

Content type: tutorial

Language: en

Sources: [Findmypast](<https://devfeed.tech/sources/findmypast.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [React](<https://devfeed.tech/topics/react.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [improvements](<https://devfeed.tech/tags/improvements.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [testing](<https://devfeed.tech/tags/testing.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This article explains how Testing Library queries affect test performance in React UI tests. It compares role-based queries with the more limited ByText and ByLabelText queries, notes that they are not interchangeable for every assertion, and describes contextualizing queries when necessary. In the tested instances, the recommended changes improved performance from 320 ms to 16 ms, a 95% improvement.

### Source excerpt

We use Testing Library to test our React UI pages and components. For example, we may have the following HelpFaqsTile component in a page: const HelpFaqsTile = () => ( <CardWithStyleOverrides data-testid="help-faqs-tile"> <DashboardImage src={require('../../assets/cartoon-lifebelt.png')} alt="a floating lifesaver" /> <TileContentWrapper> <h4>Need some help?</h4> <p>Our FAQs are a lifesaver</p> <Button as={Link} to="/help"> Search FAQs </Button> </TileContentWrapper> </CardWithStyleOverrides> ); export default HelpFaqsTile; Let suppose we want to test whether "the 'Help Faqs' tile provides a link with the text Search FAQs": import { act, render } from '@testing-library/react'; await render( <PageWhichContainsTheHelpFaqsTile /> ); const buttonToFaq = screen.getByRole('link', { name: 'Search FAQs', }); expect(buttonToFaq).toBeInTheDocument(); *ByRole methods like screen.getAllByRole('link', {name: 'Search FAQs'}) can be slow due to the way in which they search through the entire DOM tree looking for nodes matching the role type, and optionally a variety of attributes (label, aria-label, etc. depending on additional criteria, here name). In contrast, the more performant *ByText and *ByLabelText methods look for text nodes and nodes with more limited attributes (label and aria-label only) respectively. So, we could use screen.getByText('Search FAQs') instead: import { act, render } from '@testing-library/react'; await render( <PageWhichContainsTheHelpFaqsTile /> ); const buttonToFaq = screen.getByText('Search FAQs'); expect(buttonToFaq).toBeInTheDocument(); They are not like for like replacements however. Let's suppose we want to test "the 'Help Faqs' tile provides a link which directs the user to our FAQ's" import { act, render } from '@testing-library/react'; await render( <PageWhichContainsTheHelpFaqsTile /> ); const buttonToFaq = screen.getByRole('link', { name: 'Search FAQs', }); expect(buttonToFaq).toBeInTheDocument(); expect(buttonToFaq).toHaveAttribute('href', '/

## Keeping up the Open Source promise for 2021

DevFeed: [Keeping up the Open Source promise for 2021](<https://devfeed.tech/articles/keeping-up-the-open-source-promise-for-2021-28005.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2021-01-25-keepinguptheopensourcepromisefor2021/>)

Author: Patrick Gotthardt Follow

Published: 2021-01-25T00:00:00Z

Content type: opinion

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [Preact.js](<https://devfeed.tech/topics/preact.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Cloud Native Ecosystem](<https://devfeed.tech/topics/cloud-native-ecosystem.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [Prometheus](<https://devfeed.tech/topics/prometheus.md>)

Tags: [community](<https://devfeed.tech/tags/community.md>), [company](<https://devfeed.tech/tags/company.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [open-source-software](<https://devfeed.tech/tags/open-source-software.md>), [patches](<https://devfeed.tech/tags/patches.md>), [preact](<https://devfeed.tech/tags/preact.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [testing-library](<https://devfeed.tech/tags/testing-library.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

trivago describes its 2021 commitment to supporting open source projects and organizations, including webpack, Preact, and the Cloud Native Computing Foundation. It also highlights financial support, community participation, and contributions such as open source libraries and patches.

### Source excerpt

COVID-19 has impacted the travel industry very severely. Even in these hard times, trivago remains committed to contributing to open source. As a tech company working on large-scale projects, we feel a responsibility towards supporting the open source community. webpack, Preact and the CNCF This year we will continue supporting projects and organisations that are having a major impact on the products we build and the happiness of our engineers who use them on a daily basis.