Тестировал ли приватные методы класса

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

Ответ

Нет, приватные методы не стоит тестировать напрямую. Они являются внутренней реализацией класса и могут меняться без изменения публичного API.

Тестировать нужно только публичные методы, которые используют приватные. Если приватный метод сложный и требует отдельного тестирования — возможно, его стоит вынести в отдельный утилитарный класс.

class MyClass {
  publicMethod() {
    return this._privateHelper() * 2;
  }

  _privateHelper() {
    // сложная логика
  }
}

// Тестируем publicMethod, а не _privateHelper
test('publicMethod works', () => {
  const instance = new MyClass();
  expect(instance.publicMethod()).toBe(42);
});