Здравствуйте.
Изучаю сейчас модульное тестирование и возник вопрос о правильном уровне изоляции каждого модуля.
Представим, что у нас есть два класса в JS, в целом представляющие один компонент или уровень:
function HighClass() {
this.lowClass = new lowClass();
}
function LowClass() {
this.db = new SomeDB.Connecton();
}
Я вижу два способа тестирования:
1. Так как оба класса логически связаны то тестировать мы их будем вместе. В качестве внешней зависимости я выбираю подключение к БД (new SomeDB.Connecton()) и заменяю ее на заглушку.
2. Я тестирую каждый каждый класс отдельно. В качестве заглушки для HighClass предоставляю MockLowClass, а для LowClass — MockDB.
Какой способ является правильным, если мы говорим именно о модульном тестировании? При модульном тестировании мы в качестве кода под тестами всегда должны выбирать один класс или можем компонент, состоящий из нескольких классов?