Комбинировал ли написание тестов

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

Ответ

Да, комбинировал. Использовал разные подходы в зависимости от проекта:

  1. Unit-тесты (Jest) для изолированного тестирования компонентов и утилит:
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});
  1. Интеграционные тесты (Testing Library) для проверки взаимодействия компонентов:
test('should submit form with valid data', async () => {
  render(<Form />);
  fireEvent.change(screen.getByLabelText('Email'), {target: {value: 'test@test.com'}});
  fireEvent.click(screen.getByText('Submit'));
  await waitFor(() => expect(mockSubmit).toHaveBeenCalled());
});
  1. E2E-тесты (Cypress) для проверки полного сценария:
it('should complete purchase flow', () => {
  cy.visit('/cart');
  cy.get('[data-testid="checkout"]').click();
  cy.url().should('include', '/checkout');
});

Сочетание этих подходов дает хорошее покрытие и уверенность в коде. Важно соблюдать баланс - не переусердствовать с unit-тестами для простых компонентов.