Testing
Тестування Redux
Однією з головних переваг Redux є те, що його надзвичайно легко тестувати.
Оскільки більшість логіки (редюсери, селектори) — це чисті функції, для їх тестування навіть не потрібно запускати React.
Тестування Redux
Однією з головних переваг Redux є те, що його надзвичайно легко тестувати. Оскільки більшість логіки (редюсери, селектори) — це чисті функції, для їх тестування навіть не потрібно запускати React.
Інструменти
Ми будемо використовувати стандартний стек:
- Vitest (або Jest): Тест-раннер.
- React Testing Library: Для тестування компонентів.
- MSW (Mock Service Worker): Для моку мережевих запитів (API).
Налаштування (Vitest)
Якщо ви використовуєте Vite, налаштування дуже просте.
npm install -D vitest jsdom @testing-library/react @testing-library/user-event
vite.config.js
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()],
test: {
globals: true,
environment: 'jsdom',
setupFiles: './src/setupTests.js',
},
});
Що ми будемо тестувати?
Ми дотримуємося піраміди тестування:
- Unit Tests: Редюсери, Селектори, Thunks. (Багато, швидко пишуться).
- Integration Tests: Компоненти + Redux Store. (Менше, перевіряють зв'язки).
- E2E Tests: Весь додаток в браузері. (Мало, повільні).
У наступних розділах ми пройдемося по кожному рівню.
Optimistic Updates
Оптимістичне оновлення — це стратегія, коли ми оновлюємо інтерфейс так, ніби запит на сервер вже пройшов успішно. Це створює відчуття миттєвої реакції.
Тестування Reducers
Тестування редюсерів — це найпростіша частина. Вам просто потрібно викликати функцію з певним станом і дією, і перевірити результат.