Disclaimer: le mie esperienze con le realtà di embedded sono limitate. Potresti scoprire che questa guida non corrisponde ai vincoli che stai utilizzando sotto
TDD ama le funzioni . Strano, dato il suo lignaggio, ma così via. Spesso il tuo punto di partenza è pensare, e così facendo scopri una funzione che incapsula la maggior parte della complessità logica del tuo problema, quindi concentrati sui tuoi sforzi iniziali per generare test che inducano l'implementazione di quella logica.
In questo caso, potrebbe essere una funzione che accetta le impostazioni di configurazione come argomento e restituisce un elenco collegato di descrizioni delle chiamate per impostare i registri (ovvero, un identificatore per ciascuna funzione e gli argomenti da passare ad esso - il tipo di cosa che potresti passare a una dichiarazione di interruttore stupida).
Quindi applicheresti l'implementazione di questa funzione specificando le varianti delle configurazioni e quale vincolo deve essere soddisfatto dal risultato restituito.
Il primo test verrebbe scelto per selezionare l'elenco di chiamate più semplice, quindi verranno ordinati test aggiuntivi in base all'esempio che introduce la quantità minima di nuova complessità nel codice di produzione.
Se i valori di ritorno delle chiamate di funzione precedenti fanno parte della logica per il calcolo delle chiamate successive, allora potresti cercare qualcosa di più simile a una libreria di protocolli (vedi questo discorso di Cory Benfield )
Add or modifying initialization has become a pain as most tests need to be rewritten.
Estendere l'implementazione per soddisfare i nuovi requisiti dovrebbe essere relativamente indolore, dato che i comportamenti precedenti non cambiano.
Modifica - significa che il requisito effettivo è cambiato; si, può essere doloroso.
Qualche volta questo indica che i test completano l'implementazione. Questo sintomo è comune nei test dell'interfaccia utente, in cui le modifiche estetiche rendono il risultato molto diverso dall'imbracatura di test e pertanto è possibile che si stia imbattendo in qualcosa di simile.