Хочу разобраться в модульном тестировании применительно к C++. Но даже не знаю с какой стороны начинать. Прошу подсказать что почитать на эту тему. Надо что-то понятное для дилетанта вроде меня.
На эту же тему у меня есть и более конкретный практический вопрос. Например в составе программы есть три неких класса - Input, Handler и Output. Handler должен получать какую-то информацию из Input'а, как-то её обрабатывать и передавать классу Output. Реализация простая как лом: в конструкторе класса Handler создаются экземпляры Input и Output, а затем в процессе работы Handler вызывает их функции. А теперь допустим, что мне взбрело в голову проверить работу класса Handler подавая ему заранее известные данные и сравнивая результат работы с эталоном. Правильно ли я понимаю, что для этого мне нужно заменить классы Input и Output на подменные классы, которые вместо реальной работы должны выдавать заранее заготовленные данные и сравнивать результат работы? Как это правильно сделать? Мне приходит в голову только один вариант: добавление между Handler'ом и Input/Output лишних слоёв абстракции в виде полностью виртуальных классов-интерфейсов или шаблонов, чтобы можно было легко подсунуть Handler'у заменители для Input'а и Output'а. Но это мне не нравится, так как для этого надо основательно корёжить код и добавлять лишние вещи, от которых не будет никакой пользы при работе программы в штатном режиме...