TDD で最初に学べることは、物事をテスト可能にするには、それらを疎結合にする必要があるということです。そして、ほとんどの言語では、これは、インターフェイスを介した結合のみを分離し、依存関係の注入を延期することで達成されます。これにより、テストしたい実装にモック オブジェクトをドッキングできるようになります。
さて、C++ ではもちろん、抽象クラスをインターフェイスとして使用して文字へのアプローチに従うことができますが、コンパイル時に依存関係を解決するテンプレート プログラミングの力もあります。
標準的なアプローチでTDDを実行する方法の例をあまりにも多く見てきましたが、テンプレートプログラミングの例はゼロからジルチの間です。はい、ポリシー テンプレート パラメーターを使用して実装の選択を延期するという Alexandrescu のアプローチを見てきましたが、なぜこのアプローチが普及していないのか疑問に思っています。それは困難や厄介な副作用につながりましたか?
要するに、テンプレートとコンパイル時のポリモーフィズムを使用してプログラミングするときに TDD に従うための最良のアプローチは何ですか?