Первое, что вы узнаете по TDD, - это то, что для проверки того, что нужно проверить, они должны быть слабо связаны. И в большинстве языков это достигается путем разделения связи через интерфейсы, откладывания инъекций зависимостей, таких, что макет объектов может быть состыкован с теми реализациями, которые мы хотим проверитьтехники для TDD с шаблонами C++
Теперь, на C++, мы, конечно, можем следовать этот подход к письму с использованием абстрактных классов в качестве интерфейсов, но у нас также есть возможность программирования шаблонов, которая разрешает зависимости во время компиляции
Я видел слишком много примеров того, как делать TDD со стандартным подходом, но что-то между нулями и примерами zilch для программирования шаблонов. Да, я видел подход Alexandrescu к использованию параметров шаблона политики, чтобы отложить выбор реализаций, но мне интересно, почему этот подход не является более распространенным. Оказывает ли это трудности или тревожные побочные эффекты?
Одним словом, какой лучший подход к следующему TDD при программировании с шаблонами и полиморфизмом во время компиляции?