{"id":3030,"date":"2024-02-02T11:45:17","date_gmt":"2024-02-02T14:45:17","guid":{"rendered":"https:\/\/beon.tech\/blog\/?p=3030"},"modified":"2026-04-06T14:24:35","modified_gmt":"2026-04-06T17:24:35","slug":"react-testing-library","status":"publish","type":"post","link":"https:\/\/beon.tech\/blog\/react-testing-library\/","title":{"rendered":"Unit Testing 101 With React Testing Library"},"content":{"rendered":"\n<p>Frontend development relies heavily on unit testing to verify that different components of the codebase work correctly. This article will delve into the fundamental principles of unit testing in a ReactJS application, with a specific emphasis on using React Testing Library to test components, context API, custom hooks, and especially user interactions. Additionally, we will see the potential integration of unit tests within the CI\/CD pipeline and underscore the significance of test coverage reporting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Benefits of unit testing in frontend development\u00a0<\/strong><\/h2>\n\n\n\n<p>Unit testing plays a vital role in improving code quality, catching bugs early in the development process, and facilitating a test-driven development approach. With React Testing Library, developers can write tests that closely resemble how users interact with the application, leading to more robust and maintainable code.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Understanding the React Testing library&nbsp;<\/strong><\/h2>\n\n\n\n<p><a href=\"https:\/\/testing-library.com\/docs\/react-testing-library\/intro\/\">React Testing Library<\/a> is a popular testing utility for React that encourages testing components in a way that resembles user behavior. When testing React components, it focuses on testing the rendered output rather than implementation details, resulting in tests that are more resilient to changes in the component&#8217;s internal structure.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Choosing tools: Vitest and Jest&nbsp;<\/strong><\/h3>\n\n\n\n<p>When we are setting up the testing tools for our application, it&#8217;s common to think on what tool we will use, Jest or another one? Recently Vitest is getting more and more popular. It&#8217;s a testing tool, similar to Jest, built on top of Vite and offering a very attractive alternative to Jest for several reasons.<\/p>\n\n\n\n<p><a href=\"https:\/\/vitest.dev\/api\/\">Vitest<\/a> prioritizes speed and developer experience, providing faster and more performant unit tests. It seamlessly integrates with the Jest API and ecosystem libraries, enabling a smooth transition for projects already using Jest. Plus it includes some custom functionalities for your test suites.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Writing tests for Context API and custom hooks&nbsp;<\/strong><\/h3>\n\n\n\n<p>In modern React applications, Context API and custom hooks play a crucial role in managing state and encapsulating reusable logic. With React Testing Library, we can effectively test components that consume context and hooks by simulating their behavior and testing the resulting output.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Testing components with Context API&nbsp;<\/strong><\/h4>\n\n\n\n<p>When testing components that consume a context, it&#8217;s essential to create a testing environment that provides the necessary context values. This can be achieved using the Provider component from the relevant context. Look at the example below:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code data-enlighter-language=\"js\" class=\"EnlighterJSRAW\">\/\/ Sample test for a component consuming context&nbsp;\n\nimport { render } from '@testing-library\/react';&nbsp;\n\nimport { UserContext, UserProvider } from '.\/UserContext';&nbsp;\n\ntest('displays username from context', () =&gt; {&nbsp;\n\n&nbsp;render(&nbsp;\n\n&nbsp;&lt;UserProvider value={{ username: 'Bruno' }}&gt;&nbsp;\n\n&nbsp;&lt;UserProfile \/&gt;&nbsp;\n\n&nbsp;&lt;\/UserProvider&gt;&nbsp;\n\n&nbsp;);&nbsp;                                                                                 \n\n&nbsp;\/\/ Assertions to validate the rendering of the username });&nbsp;<\/code><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Testing custom hooks&nbsp;<\/strong><\/h4>\n\n\n\n<p>For testing custom hooks, it&#8217;s important to focus on the behavior and output of the hook under certain conditions. This can be done by invoking the custom hook within the testing environment and asserting the expected behavior. Look at the example below:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code data-enlighter-language=\"js\" class=\"EnlighterJSRAW\">\/\/ Sample test for a custom hook&nbsp;\n\nimport { renderHook } from '@testing-library\/react-hooks'; import { useCounter } from '.\/useCounter';&nbsp;\n\ntest('increments counter value', () =&gt; {&nbsp;\n\nconst { result } = renderHook(() =&gt; useCounter());&nbsp; result.current.increment();&nbsp;\n\nexpect(result.current.count).toBe(1);&nbsp;                                               \n\n});&nbsp;<\/code><\/code><\/pre>\n\n\n\n<p>It also requires the library @testing-library\/react-hooks&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Mocking dependencies and APIs with Vitest<\/strong><\/h3>\n\n\n\n<p>In Vitest, mocking modules and APIs can be achieved using utility functions provided by the vi helper. The vi.mock function substitutes all imported modules from a specified path with another module, enabling the controlled replacement of dependencies for testing purposes.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code data-enlighter-language=\"js\" class=\"EnlighterJSRAW\">\/\/ Mocking a module using Vitest&nbsp;\n\nvi.mock('.\/path\/to\/module.js', async (importOriginal) =&gt; {&nbsp; const mod = await importOriginal();&nbsp;\n\n&nbsp;return {&nbsp;\n\n&nbsp;...mod,&nbsp;\n\n&nbsp;namedExport: vi.fn(), \/\/ Replace the namedExport with a moc&nbsp; };&nbsp;                    \n\n});&nbsp;<\/code><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Asserting with React Testing library&nbsp;<\/strong><\/h3>\n\n\n\n<p>As mentioned before, we can do specific assertions using RTL aiming to simulate the user behavior, here are some assertion examples:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><code data-enlighter-language=\"js\" class=\"EnlighterJSRAW\">\/\/ Asserting that a text is rendered in the document&nbsp;\n\nimport React from 'react';&nbsp;\n\nimport { render } from '@testing-library\/react';&nbsp;\n\nimport MyComponent from '.\/MyComponent';&nbsp;\n\ntest('renders MyComponent', () =&gt; {&nbsp;\n\nconst { getByText } = render(&lt;MyComponent \/&gt;);&nbsp; const textElement = getByText('Hello, World!');&nbsp; expect(textElement).toBeInTheDocument();&nbsp;\n\n});&nbsp;\n\n\/\/ Asserting conditional rendering&nbsp;\n\nimport React from 'react';&nbsp;\n\nimport { render } from '@testing-library\/react';&nbsp;\n\nimport ConditionalComponent from '.\/ConditionalComponent';&nbsp;\n\ntest('renders based on condition', () =&gt; {&nbsp;\n\nconst { getByText, queryByText } = render(&lt;ConditionalComponen&nbsp; const visibleTextElement = getByText('Visible Content');&nbsp; const hiddenTextElement = queryByText('Hidden Content');&nbsp; expect(visibleTextElement).toBeInTheDocument();&nbsp; expect(hiddenTextElement).toBeNull();&nbsp;\n\n});&nbsp;\n\n\/\/ Form validations&nbsp;\n\nimport React from 'react';&nbsp;\n\nimport { render, fireEvent } from '@testing-library\/react'; import LoginForm from '.\/LoginForm';&nbsp;\n\ntest('submits form with valid input', () =&gt; {&nbsp;\n\nconst { getByLabelText, getByText } = render(&lt;LoginForm \/&gt;);&nbsp; const emailInput = getByLabelText('Email');\n\nconst passwordInput = getByLabelText('Password');&nbsp; const submitButton = getByText('Submit');&nbsp;\n\nfireEvent.change(emailInput, { target: { value: 'user@example&nbsp; fireEvent.change(passwordInput, { target: { value: 'password12&nbsp; fireEvent.click(submitButton);&nbsp;\n\n&nbsp;\/\/ Validate the form submission result&nbsp;\n\n});&nbsp;<\/code><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The importance of CI\/CD integration&nbsp;<\/strong><\/h2>\n\n\n\n<p>While we won&#8217;t delve into the specifics of setting up a CI\/CD pipeline for testing in this article, it&#8217;s important to note that integrating unit tests into the development workflow can significantly improve code quality.&nbsp;<\/p>\n\n\n\n<p>Additionally, incorporating test coverage reporting into the CI\/CD pipeline allows developers to track the percentage of code covered by tests, providing valuable insights into the overall quality of the codebase.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Key Takeaways<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Unit testing is an integral part of frontend development, and with the right tools and best practices, developers can ensure the reliability and maintainability of their code.&nbsp;<\/li>\n\n\n\n<li>By leveraging React Testing Library, context API, and custom hooks, developers can write effective unit tests that enhance the overall quality of their React applications.&nbsp;<\/li>\n\n\n\n<li>Integrating unit tests into the CI\/CD pipeline and monitoring test coverage can further elevate the development process, ultimately leading to more robust and stable applications.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Frontend development relies heavily on unit testing to verify that different components of the codebase work correctly. This article will delve into the fundamental principles of unit testing in a ReactJS application, with a specific emphasis on using React Testing Library to test components, context API, custom hooks, and especially user interactions. Additionally, we will<a class=\"read_more_linkk\" href=\"https:\/\/beon.tech\/blog\/react-testing-library\/\">&#8230;<\/a><\/p>\n","protected":false},"author":34,"featured_media":3405,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[168],"tags":[437,460,156],"class_list":["post-3030","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-engineering","tag-coding","tag-react","tag-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>BEON.tech - Blog | Unit Testing 101 With React Testing Library<\/title>\n<meta name=\"description\" content=\"Dive into the fundamentals of unit testing with React Testing Library, gaining knowledge on testing components, context API, and custom hooks.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/beon.tech\/blog\/react-testing-library\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BEON.tech - Blog | Unit Testing 101 With React Testing Library\" \/>\n<meta property=\"og:description\" content=\"Dive into the fundamentals of unit testing with React Testing Library, gaining knowledge on testing components, context API, and custom hooks.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/beon.tech\/blog\/react-testing-library\/\" \/>\n<meta property=\"og:site_name\" content=\"Software &amp; Tech Hiring Insights | BEON.tech Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-02T14:45:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-06T17:24:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"470\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Bruno Feitoza\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@beontechok\" \/>\n<meta name=\"twitter:site\" content=\"@beontechok\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Bruno Feitoza\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/\"},\"author\":{\"name\":\"Bruno Feitoza\",\"@id\":\"https:\\\/\\\/beon.tech\\\/blog\\\/#\\\/schema\\\/person\\\/7f8ac0cdbb825002cc0c50e8f7909a58\"},\"headline\":\"Unit Testing 101 With React Testing Library\",\"datePublished\":\"2024-02-02T14:45:17+00:00\",\"dateModified\":\"2026-04-06T17:24:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/\"},\"wordCount\":690,\"image\":{\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beon.tech\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Marketing.2021-11.png\",\"keywords\":[\"Coding\",\"React\",\"Software Development\"],\"articleSection\":[\"Technical Engineering\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/\",\"url\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/\",\"name\":\"BEON.tech - Blog | Unit Testing 101 With React Testing Library\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/beon.tech\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/beon.tech\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Marketing.2021-11.png\",\"datePublished\":\"2024-02-02T14:45:17+00:00\",\"dateModified\":\"2026-04-06T17:24:35+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/beon.tech\\\/blog\\\/#\\\/schema\\\/person\\\/7f8ac0cdbb825002cc0c50e8f7909a58\"},\"description\":\"Dive into the fundamentals of unit testing with React Testing Library, gaining knowledge on testing components, context API, and custom hooks.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/#primaryimage\",\"url\":\"https:\\\/\\\/beon.tech\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Marketing.2021-11.png\",\"contentUrl\":\"https:\\\/\\\/beon.tech\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Marketing.2021-11.png\",\"width\":1000,\"height\":470},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/beontech.wpengine.com\\\/react-testing-library\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/beon.tech\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unit Testing 101 With React Testing Library\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/beon.tech\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/beon.tech\\\/blog\\\/\",\"name\":\"Software &amp; Tech Hiring Insights | BEON.tech Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/beon.tech\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/beon.tech\\\/blog\\\/#\\\/schema\\\/person\\\/7f8ac0cdbb825002cc0c50e8f7909a58\",\"name\":\"Bruno Feitoza\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/beon.tech\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/BEON-FHD-DIA-1-243-scaled-96x96.jpg\",\"url\":\"https:\\\/\\\/beon.tech\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/BEON-FHD-DIA-1-243-scaled-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/beon.tech\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/BEON-FHD-DIA-1-243-scaled-96x96.jpg\",\"caption\":\"Bruno Feitoza\"},\"description\":\"Bruno Feitoza is a Senior Software Engineer with 7+ years of experience building web solutions, with a strong focus on React.js and Node.js (JavaScript\\\/TypeScript). At BEON.tech, he helps design and deliver high-quality, scalable web applications in fast-paced environments, and is also interested in cloud and infrastructure-as-code (AWS, Terraform). He has worked with databases like PostgreSQL and MongoDB and is always focused on continuous improvement and learning new approaches to complex problems.\",\"url\":\"https:\\\/\\\/beon.tech\\\/blog\\\/author\\\/brunofeitoza\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"BEON.tech - Blog | Unit Testing 101 With React Testing Library","description":"Dive into the fundamentals of unit testing with React Testing Library, gaining knowledge on testing components, context API, and custom hooks.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/beon.tech\/blog\/react-testing-library\/","og_locale":"en_US","og_type":"article","og_title":"BEON.tech - Blog | Unit Testing 101 With React Testing Library","og_description":"Dive into the fundamentals of unit testing with React Testing Library, gaining knowledge on testing components, context API, and custom hooks.","og_url":"https:\/\/beon.tech\/blog\/react-testing-library\/","og_site_name":"Software &amp; Tech Hiring Insights | BEON.tech Blog","article_published_time":"2024-02-02T14:45:17+00:00","article_modified_time":"2026-04-06T17:24:35+00:00","og_image":[{"width":1000,"height":470,"url":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11.png","type":"image\/png"}],"author":"Bruno Feitoza","twitter_card":"summary_large_image","twitter_creator":"@beontechok","twitter_site":"@beontechok","twitter_misc":{"Written by":"Bruno Feitoza","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/#article","isPartOf":{"@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/"},"author":{"name":"Bruno Feitoza","@id":"https:\/\/beon.tech\/blog\/#\/schema\/person\/7f8ac0cdbb825002cc0c50e8f7909a58"},"headline":"Unit Testing 101 With React Testing Library","datePublished":"2024-02-02T14:45:17+00:00","dateModified":"2026-04-06T17:24:35+00:00","mainEntityOfPage":{"@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/"},"wordCount":690,"image":{"@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/#primaryimage"},"thumbnailUrl":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11.png","keywords":["Coding","React","Software Development"],"articleSection":["Technical Engineering"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/","url":"https:\/\/beontech.wpengine.com\/react-testing-library\/","name":"BEON.tech - Blog | Unit Testing 101 With React Testing Library","isPartOf":{"@id":"https:\/\/beon.tech\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/#primaryimage"},"image":{"@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/#primaryimage"},"thumbnailUrl":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11.png","datePublished":"2024-02-02T14:45:17+00:00","dateModified":"2026-04-06T17:24:35+00:00","author":{"@id":"https:\/\/beon.tech\/blog\/#\/schema\/person\/7f8ac0cdbb825002cc0c50e8f7909a58"},"description":"Dive into the fundamentals of unit testing with React Testing Library, gaining knowledge on testing components, context API, and custom hooks.","breadcrumb":{"@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/beontech.wpengine.com\/react-testing-library\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/#primaryimage","url":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11.png","contentUrl":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11.png","width":1000,"height":470},{"@type":"BreadcrumbList","@id":"https:\/\/beontech.wpengine.com\/react-testing-library\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/beon.tech\/blog\/"},{"@type":"ListItem","position":2,"name":"Unit Testing 101 With React Testing Library"}]},{"@type":"WebSite","@id":"https:\/\/beon.tech\/blog\/#website","url":"https:\/\/beon.tech\/blog\/","name":"Software &amp; Tech Hiring Insights | BEON.tech Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/beon.tech\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/beon.tech\/blog\/#\/schema\/person\/7f8ac0cdbb825002cc0c50e8f7909a58","name":"Bruno Feitoza","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2026\/03\/BEON-FHD-DIA-1-243-scaled-96x96.jpg","url":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2026\/03\/BEON-FHD-DIA-1-243-scaled-96x96.jpg","contentUrl":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2026\/03\/BEON-FHD-DIA-1-243-scaled-96x96.jpg","caption":"Bruno Feitoza"},"description":"Bruno Feitoza is a Senior Software Engineer with 7+ years of experience building web solutions, with a strong focus on React.js and Node.js (JavaScript\/TypeScript). At BEON.tech, he helps design and deliver high-quality, scalable web applications in fast-paced environments, and is also interested in cloud and infrastructure-as-code (AWS, Terraform). He has worked with databases like PostgreSQL and MongoDB and is always focused on continuous improvement and learning new approaches to complex problems.","url":"https:\/\/beon.tech\/blog\/author\/brunofeitoza\/"}]}},"featured_image_src":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11-600x400.png","featured_image_src_square":"https:\/\/beon.tech\/blog\/wp-content\/uploads\/2024\/02\/Marketing.2021-11-600x470.png","author_info":{"display_name":"Bruno Feitoza","author_link":"https:\/\/beon.tech\/blog\/author\/brunofeitoza\/"},"_links":{"self":[{"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/posts\/3030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/comments?post=3030"}],"version-history":[{"count":0,"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/posts\/3030\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/media\/3405"}],"wp:attachment":[{"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/media?parent=3030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/categories?post=3030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beon.tech\/blog\/wp-json\/wp\/v2\/tags?post=3030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}