Quindi, faccio parte di un progetto molto ampio che non ha, ancora, test delle unità (brivido!) e voglio introdurlo.
Ho intenzione di utilizzare Google Test e Google Mock.
Il codice è grande e ingombrante e soffre di "header spaghetti".
Se desidero, per motivi di semplicità, testare solo a.cpp che chiama solo una singola funzione in b.cpp, allora posso usare Google Mock per generare un mock per b.cpp.
Tuttavia, se # includo bh in a.cpp e nella mia suite di test, trovo che bh # include un numero di altre intestazioni, che a sua volta ... alla fine, includo centinaia di intestazioni.
Non ci sarà alcuna ristrutturazione dei file header (in qualunque momento presto, se mai). Devo solo conviverci.
Fino ad ora, il codice è stato creato solo come sistema completo, per un processore ARM, e ora voglio creare a.cpp plus b.cpp più Google test per l'esecuzione su Linux.
Ho grossi problemi in quanto ci sono centinaia di commutatori (!) nel compilatore del sistema e non riesco a vedere quali sono necessari dove, che sono solo ARM, cosa li sostituirà per Linux, ecc.
Inoltre, alcuni di essi contengono #defines che si espandono per funzionare chiamate (soprattutto dal registro di traccia, ma anche per gli altri), e non so dove trovarli per deriderli.
Infine la domanda: come viene gestita normalmente? Dovrei fare una simulazione di b.h, che contiene solo ciò che è necessario a.cpp?
Se è così, devo farlo manualmente o Google Mock può aiutarti in qualche modo?
E, no, il codice non sarà ristrutturato; almeno non immediatamente, per timore di destabilizzarlo.
Non mi piace l'idea di inserire la maggior parte delle intestazioni nel sistema, ma non riesco a trovare un modo semplice per deriderle: - (