Pruebas y 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
selectFromResult para Prevenir Re-renderizadosEvitar 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
Lista de Verificación de Mejores Prácticas
Rendimiento
Pruebas
Calidad de Código
Anti-Patrones a Evitar
Monitorear Rendimiento
Rastrear llamadas a Selectors
Monitorear Re-renders
Siguientes pasos
Última actualización