Sto lavorando su un progetto procedurale C/C++. L'interfaccia pubblica è composta da 4 funzioni, ciascuna con compiti abbastanza complessi. Ci sono funzioni di supporto dichiarate nello stesso file cpp
, in uno spazio dei nomi senza nome. Il framework di test utilizzato è GTest.Unit Testing C++ Code in uno spazio dei nomi senza nome
Tuttavia, alcune di queste funzioni di supporto stanno diventando abbastanza complesse da richiedere il test dell'unità. Normalmente, vorrei refactoring questi helper nelle proprie unità testabili, ma i requisiti del progetto indicano che tutto deve essere in uno cpp
, e solo le funzioni specificate possono essere visibili pubblicamente.
Esiste un modo per testare le funzioni dell'helper riducendo al minimo l'accoppiamento e seguendo i requisiti del progetto il più vicino possibile?
Una possibile soluzione era utilizzare una macro per trasformare lo spazio dei nomi in un nome per il test e senza nome per la produzione. Tuttavia, mi è sembrato un po 'più confuso di quanto vorrei.
Possibile duplicato di [Come posso testare una classe che ha metodi privati, campi o classi interne?] (Https://stackoverflow.com/questions/34571/how-do-i-test-a-class-that -has-private-methods-fields-or-inner-classes) – Raedwald