Guia Prático para Testar Componentes que Usam localStorage no React

Aprenda a testar componentes que utilizam localStorage no React com este guia prático.

Testando Componentes com localStorage no React

O uso do localStorage é uma prática comum em aplicações React para armazenar dados no navegador. Neste guia, vamos explorar como testar componentes que fazem uso dessa funcionalidade, garantindo que seu comportamento esteja correto e que os dados sejam manipulados conforme esperado.

O que é localStorage?

O localStorage é uma API do navegador que permite armazenar dados em formato chave-valor. Os dados armazenados no localStorage persistem mesmo após o fechamento do navegador, o que o torna ideal para guardar informações que precisam ser acessadas durante várias sessões do usuário.

Por que testar componentes que utilizam localStorage?

Testar componentes que utilizam localStorage é fundamental para garantir que a aplicação funcione corretamente. Os testes ajudam a verificar se os dados estão sendo armazenados e recuperados corretamente, além de assegurar que a lógica do componente esteja funcionando como esperado.

Configurando o Ambiente de Teste

Antes de começarmos a escrever os testes, precisamos configurar nosso ambiente. Vamos utilizar a biblioteca Jest juntamente com React Testing Library. Para isso, instale as dependências necessárias:

npm install --save-dev @testing-library/react @testing-library/jest-dom

Escrevendo Testes para Componentes com localStorage

Vamos considerar um exemplo simples de um componente que salva e lê um nome do usuário usando localStorage. Aqui está o código do componente:

import React, { useEffect, useState } from 'react';

const UserNameInput = () => {
    const [name, setName] = useState('');

    useEffect(() => {
        const storedName = localStorage.getItem('userName');
        if (storedName) {
            setName(storedName);
        }
    }, []);

    const handleChange = (event) => {
        setName(event.target.value);
        localStorage.setItem('userName', event.target.value);
    };

    return (
        <input type="text" value={name} onChange={handleChange} />
    );
};

export default UserNameInput;

Neste código, o componente UserNameInput utiliza o localStorage para armazenar o nome do usuário. No efeito colateral useEffect, ele lê o nome armazenado quando o componente é montado, e a função handleChange atualiza o estado e o localStorage sempre que o usuário digita algo.

Testando o Componente

Agora que temos nosso componente, vamos escrever um teste para ele:

import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import UserNameInput from './UserNameInput';

beforeEach(() => {
    localStorage.clear();
});

test('deve salvar o nome no localStorage', () => {
    const { getByRole } = render(<UserNameInput />);
    const input = getByRole('textbox');

    fireEvent.change(input, { target: { value: 'Gabriel' } });

    expect(localStorage.getItem('userName')).toBe('Gabriel');
});

test('deve carregar o nome do localStorage ao montar', () => {
    localStorage.setItem('userName', 'Renata');
    const { getByRole } = render(<UserNameInput />);
    const input = getByRole('textbox');

    expect(input.value).toBe('Renata');
});

O primeiro teste verifica se o nome é salvo corretamente no localStorage quando o usuário digita no campo de entrada. O segundo teste verifica se o nome armazenado no localStorage é carregado corretamente quando o componente é montado.

Dicas para Testes com localStorage

  1. Limpe o localStorage: Sempre inicie os testes limpando o localStorage para evitar resultados inesperados.
  2. Use funções de simulação: Utilize funções como fireEvent para simular interações do usuário.
  3. Verifique o estado: Acesse o localStorage diretamente nos testes para garantir que os dados estão sendo salvos corretamente.

Conclusão

Testar componentes que utilizam localStorage é uma parte importante do desenvolvimento em React. Com as práticas e exemplos apresentados, você pode garantir que seus componentes funcionem corretamente e que os dados sejam manipulados como esperado. Não hesite em explorar mais sobre testes em React e melhorar a qualidade do seu código!

O localStorage é uma ferramenta poderosa que facilita o armazenamento de informações no navegador. Ao entender como utilizá-lo corretamente, você pode criar experiências de usuário mais ricas e interativas. Além disso, ao combinar localStorage com testes, você garante que suas aplicações sejam robustas e confiáveis. A prática de testar componentes que utilizam localStorage não só melhora a qualidade do seu código, mas também aumenta a confiança na aplicação que você está desenvolvendo.

Algumas aplicações:

  • Armazenar preferências do usuário
  • Manter o estado de uma aplicação entre recarregamentos
  • Salvar informações temporárias durante uma sessão

Dicas para quem está começando

  • Familiarize-se com a API do localStorage
  • Teste sempre que fizer alterações no armazenamento
  • Use o localStorage com moderação para evitar problemas de desempenho

Contribuições de Gabriel Nogueira

Compartilhe este tutorial: Como testar componentes que utilizam localStorage no React?

Compartilhe este tutorial

Continue aprendendo:

Como testar componentes que fazem polling de dados no React?

Guia completo sobre como realizar testes eficazes em componentes React que realizam polling de dados.

Tutorial anterior

Como testar componentes que utilizam sessionStorage no React?

Um guia detalhado sobre como realizar testes em componentes React que dependem do sessionStorage.

Próximo tutorial