私は手続き型C/C++プロジェクトに取り組んでいます。パブリックインターフェイスは4つの関数で構成されており、それぞれにかなり複雑なタスクがあります。cpp
名前のない名前空間の同じファイルで宣言されたヘルパー関数があります。使用されているテストフレームワークはGTestです。
ただし、これらのヘルパー関数の一部は、独自の単体テストを必要とするほど複雑になっています。通常、これらのヘルパーを独自のテスト可能なユニットにリファクタリングしますが、プロジェクトの要件では、すべてを1つにまとめる必要がありcpp
、指定された関数のみを公開できます。
結合を最小限に抑え、プロジェクトの要件に可能な限り従いながら、ヘルパー関数を単体テストできる方法はありますか?
私が持っていた可能な解決策は、マクロを使用して、名前空間をテスト用の名前付き名前空間に変換し、本番用に名前空間なしに変換することでした。しかし、それは私が望むよりも少し厄介に思えました。