Sono nuovo nello sviluppo basato sui test, ma lo amo. C'è, tuttavia, un problema principale che mi impedisce di utilizzarlo in modo efficace.
Lavoro per applicazioni mediche incorporate, semplice C, con problemi di sicurezza.
Supponiamo che tu abbia il modulo A
che ha una funzione A_function()
che voglio testare. Questa funzione chiama una funzione B_function
, implementata nel modulo B
.
Voglio disaccoppiare il modulo così, come insegna James Grenning, creo un modulo Mock B
che implementa una versione finta di B_function
.
Tuttavia arriva il giorno in cui devo implementare il modulo B
con la versione reale di B_function
. Ovviamente il due B_function
non può vivere nello stesso eseguibile, quindi non so come avere un "launcher" univoco per testare entrambi i moduli.
La via d'uscita di James Grenning è quella di sostituire, nel modulo A
, la chiamata a B_function
con un puntatore a funzione che può avere il valore del mock o la funzione reale in base alle necessità.
Comunque lavoro in una squadra, e non posso giustificare questa decisione che non avrebbe senso se non fosse per il test, e nessuno mi ha chiesto esplicitamente di usare un approccio basato sui test.
Forse l'unica via d'uscita è generare un eseguibile diverso per ogni modulo.
Qualunque soluzione più intelligente? Grazie