Pruebas y rendimiento

Esta página cubre estrategias de prueba para aplicaciones Redux/RTK Query y técnicas de optimización de rendimiento.

Pruebas de Redux Slices

Pruebas básicas 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);
  });
});

Pruebas de Entity Adapters

Pruebas de Selectors

Selectores simples

Selectores Memoizados

Pruebas de RTK Query con MSW

Configurar MSW

Pruebas de Queries

Pruebas de Mutations

Pruebas de Actualizaciones Optimistas

Optimización de Rendimiento

Usa selectFromResult para Prevenir Re-renderizados

Evitar Seleccionar Todo el Estado

Memoizar Selectores Costosos

Usar Entity Adapters para Datos Normalizados

Ajustar Configuración de Caché de RTK Query

Prefetch para Mejorar la UX

Estrategia de Polling

Redux DevTools

Habilitar en Desarrollo

Action Sanitizer

Sanitizar datos sensibles en DevTools:

Lista de Verificación de Mejores Prácticas

Rendimiento

Pruebas

Calidad de Código

Anti-Patrones a Evitar

triangle-exclamation

Monitorear Rendimiento

Rastrear llamadas a Selectors

Monitorear Re-renders

Siguientes pasos

Última actualización