Ich arbeite an einem prozeduralen C/C++ - Projekt. Die öffentliche Schnittstelle besteht aus 4 Funktionen mit jeweils sehr komplexen Aufgaben. Es gibt Hilfsfunktionen, die in derselben Datei cpp
in einem unbenannten Namensbereich deklariert sind. Als Testframework wird GTest verwendet.Unit Testing C++ - Code in einem Unbenannte Namespace
Einige dieser Hilfsfunktionen werden jedoch komplex genug, um ihre eigenen Komponententests zu erfordern. Normalerweise würde ich diese Helfer in ihre eigenen testbaren Einheiten umgestalten, aber der Projektanforderungen zufolge muss alles in dem einen sein cpp
, und nur die angegebenen Funktionen können öffentlich sichtbar sein.
Gibt es eine Möglichkeit, die Hilfsfunktionen zu testen und gleichzeitig die Kopplung zu minimieren und den Projektanforderungen so genau wie möglich zu folgen?
Eine mögliche Lösung, die ich hatte, bestand darin, einen Makro zu verwenden, um den Namespace in einen benannten zum Testen und unbenannt für die Produktion zu verwandeln. Allerdings schien das ein bisschen unordentlicher als ich es gerne hätte.
Mögliches Duplikat von [Wie teste ich eine Klasse mit privaten Methoden, Feldern oder inneren Klassen?] (Https://stackoverflow.com/questions/34571/how-do-i-test-a-class-that -has-private-methods-fields-or-inner-classes – Raedwald