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

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

Ответ

Принципы тестирования, которые я применяю:

  1. Изолированность тестов - каждый тест должен быть независимым и не влиять на другие. Использую beforeEach, afterEach для подготовки/очистки.

  2. Тестирование поведения, а не реализации - фокус на том, что делает компонент, а не как он устроен внутри.

  3. Пирамида тестов - больше юнит-тестов, меньше интеграционных, ещё меньше E2E.

  4. Читаемость тестов - применяю паттерн AAA (Arrange-Act-Assert):

test('should increment counter', () => {
  // Arrange
  const { getByText } = render(<Counter />);

  // Act
  fireEvent.click(getByText('Increment'));

  // Assert
  expect(getByText('Count: 1')).toBeInTheDocument();
});
  1. Тестирование граничных случаев - пустые данные, ошибки API, крайние значения.

  2. Моки и стабы - для изоляции тестируемого модуля от зависимостей.

  3. Тестирование доступности - проверка, что компонент работает с screen readers.