私は手続き型C/C++プロジェクトに取り組んでいます。パブリックインターフェイスは4つの関数で構成され、それぞれにはかなり複雑なタスクがあります。同じcpp
ファイル内に名前のない名前空間で宣言されているヘルパー関数があります。使用されているテストフレームワークはGTestです。ユニットテスト無名空間のC++コード
しかし、これらのヘルパー関数の一部は、独自の単体テストを必要とするほど複雑になっています。通常、私はこれらのヘルパーをテスト可能なユニットにリファクタリングしますが、プロジェクトの要件によってすべてが1つのcpp
にある必要があり、指定された関数だけが公開されていることが示されます。
カップリングを最小限に抑えながら、できるだけプロジェクトの要件に沿ってユニットテストを行う方法がありますか?
可能な解決策は、マクロを使用して名前空間をテスト用に指定し、プロダクション用に名前を付けないことです。しかし、それは私が望むよりもちょっと混乱しているようでした。
[プライベートメソッド、フィールドまたは内部クラスを持つクラスをテストするにはどうすればよいですか?](https://stackoverflow.com/questions/34571/how-do-i-test-a-class-that -has-private-methods-fields-or-inner-classes) – Raedwald