Testes e Performance
Testando Slices do Redux
Testes Básicos de Reducer
// user.slice.test.ts
import reducer, { userLoggedIn, userLoggedOut } from './user.slice';
describe('user slice', () => {
const initialState = {
account: null,
isAuthenticated: false,
};
it('should handle userLoggedIn', () => {
const account = '0x123...';
const actual = reducer(initialState, userLoggedIn({ account }));
expect(actual.account).toBe(account);
expect(actual.isAuthenticated).toBe(true);
});
it('should handle userLoggedOut', () => {
const loggedInState = {
account: '0x123...',
isAuthenticated: true,
};
const actual = reducer(loggedInState, userLoggedOut());
expect(actual.account).toBeNull();
expect(actual.isAuthenticated).toBe(false);
});
});Testando Entity Adapters
Testando Selectors
Selectors Simples
Seletores Memoizados
Testando RTK Query com MSW
Configurar MSW
Testando Queries
Testando Mutations
Testando Atualizações Otimistas
Otimização de Desempenho
Use selectFromResult para Prevenir Re-renderizações
selectFromResult para Prevenir Re-renderizaçõesEvite Selecionar o Estado Inteiro
Memoizar Selectors Custosos
Use Entity Adapters para Dados Normalizados
Ajustar Configurações de Cache do RTK Query
Pré-carregamento para Melhor UX
Estratégia de Polling
Redux DevTools
Habilitar em Desenvolvimento
Sanitizador de Ações
Lista de Verificação de Boas Práticas
Desempenho
Testes
Qualidade de Código
Anti-padrões a Evitar
Monitorando Desempenho
Rastrear Chamadas de Selector
Monitorar Re-renders
Próximos Passos
Atualizado