Ho avuto problemi nel trovare un buon titolo della domanda, quindi sentiti libero di migliorare su questo.
Desidero implementare un Sistema componenti Entity in C ++ e desidero utilizzare TDD per la prima volta. Ora ho dei dubbi su quanto sia utile TDD quando l'obiettivo "architettura" è già specificato, ma voglio provarlo comunque. Il mio problema è più un problema TDD, e potrei averlo eseguito anche in un altro contesto:
Il primo test doveva controllare che io possa aggiungere un Component
a un Entity
come Entity
dovrebbe "possedere" un insieme di Component
s (forse questo è un test negativo e il problema sta già qui?). Finora non esiste alcun codice e sto affrontando un dilemma che potrebbe non essere uno. Potrei scrivere un test che faccia questo:
Entity e;
Component c;
e.add(c);
Ma come potrei affermare che add
ha funzionato correttamente? So che avrò bisogno di un qualche tipo di metodo has_component
prima o poi, ma non dovrei implementare funzionalità aggiuntive ora, o dovrei?
Potrei anche fare in modo che Entity
abbia un tipo di lista nella sua interfaccia pubblica e usarlo nel test, e refactoring che "allontana" più tardi.
Qual è l'approccio corretto qui? Potrebbe essere la mia mentalità per TDD è completamente fuori, quindi sono grato per qualsiasi input!