Это хорошие вопросы ... позвольте мне сначала сказать, что я на самом деле совсем не знаю JS, но я являюсь юнит-тестером и разбираюсь с этими проблемами. Сначала я хочу указать, что JsUnit существует, если вы его не используете.
Я бы не стал слишком беспокоиться о том, что ваш метод вызывает другие методы в том же классе ... это обязательно произойдет. Больше всего меня беспокоит создание другого объекта, в зависимости от того, насколько он сложен.
Например, если вы создаете экземпляр класса, который выполняет все виды операций по сети, это слишком тяжело для простого модульного теста. Что бы вы предпочли сделать, так это смоделировать зависимость от этого класса, чтобы объект мог получить результат, который вы ожидаете получить от его операций в сети, без дополнительных затрат при работе в сети: сбои сети, время и т.д ...
Переход в другой объект немного беспорядочный. Люди обычно используют фабричный метод для создания экземпляра другого объекта. Фабричный метод может решить, основываясь на том, проверяете ли вы (обычно с помощью флага), создавать ли экземпляр реального объекта или макета. На самом деле, вы можете захотеть сделать другой объект членом вашего класса, а внутри конструктора вызвать фабрику или принять решение, создавать ли макет или реальную вещь или нет. В функции настройки или в ваших тестовых примерах вы можете установить особые условия для фиктивного объекта, чтобы он возвращал правильное значение.
Кроме того, просто убедитесь, что у вас есть тесты для других функций в том же классе ... Надеюсь, это поможет!