Какие знаешь способы тестирования аутентификации

«Какие знаешь способы тестирования аутентификации» — вопрос из категории Тестирование, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

  1. Юнит-тесты – проверка отдельных функций (валидация логина/пароля, обработка токенов).
    test('validateEmail returns true for valid email', () => {
      expect(validateEmail('test@example.com')).toBe(true);
    });
  1. Интеграционные тесты – проверка взаимодействия с API (логин, получение токена).
    test('login returns token on success', async () => {
      const res = await login('user', 'pass');
      expect(res.token).toBeDefined();
    });
  1. E2E-тесты (Cypress/Playwright) – имитация действий пользователя (ввод данных, переход после авторизации).
    it('redirects to dashboard after login', () => {
      cy.visit('/login');
      cy.get('#email').type('user@test.com');
      cy.get('#password').type('pass123');
      cy.get('button').click();
      cy.url().should('include', '/dashboard');
    });
  1. Моки и стабы – изоляция сервисов (например, мок API для тестов без бекенда).

  2. Тесты безопасности – проверка уязвимостей (XSS, CSRF, хранение токенов в localStorage vs cookies).

  3. Snapshot-тесты – контроль изменений UI форм аутентификации.

Для надежности комбинируют несколько подходов.