Test Driven Development implica scrivere il test prima del codice e in seguito a < a href="http://en.wikipedia.org/wiki/Test-driven_development#Test-driven_development_cycle"> ciclo certo :
- Scrivi test
- Verifica test (eseguito)
- Scrivi codice di produzione
- Verifica test (eseguito)
- Pulisci codice produzione
- Verifica test (eseguito)
Per quanto mi riguarda, questo è possibile solo se la tua soluzione di sviluppo ti consente di passare molto rapidamente tra il codice di produzione e di prova e di eseguire il test per una parte di codice di produzione in modo estremamente rapido.
Ora, sebbene esista un gran numero di quadri di test unitario per C ++ (sto usando Bost.Test atm.) sembra che non esistano realmente decenti (per nativo C ++ ) Soluzione Visual Studio (Plugin) che rende sopportabile il ciclo TDD indipendentemente dal framework utilizzato.
"Bearable" significa che è un'azione con un clic per eseguire un test per un determinato file cpp senza dover impostare manualmente un progetto di test separato, ecc. "Bearable" significa anche che inizia un semplice test (collegamento!) e funziona molto rapidamente.
Quindi quali strumenti (plugin) e tecniche sono disponibili per rendere possibile il ciclo TDD per lo sviluppo nativo in C ++ con Visual Studio?
Nota: sto bene con strumenti gratuiti o "commerciali".
Si prega di : No suggerimenti del framework. (A meno che il framework non abbia un plug-in dedicato di Visual Studio e tu voglia consigliare il plugin.)
Modifica Nota : le risposte finora hanno fornito collegamenti su come integrare un framework di test delle unità in Visual Studio. Le risorse più o meno descrivono come ottenere la struttura UT per compilare e ottenere i primi test in esecuzione. Questo è non di cosa tratta questa domanda. Sono dell'opinione che funzioni davvero in modo produttivo, avendo i Test delle unità in un manuale mantenuto (!), separato da vcproj le vostre lezioni di produzione aggiungeranno così tanto spese generali che TDD "non è possibile". Per quanto ne so, non si non si aggiungono "progetti" aggiuntivi a una cosa Java o C # per abilitare Test unitari e TDD, e per una buona ragione. Questo dovrebbe essere possibile con C ++ dato gli strumenti giusti, ma sembra (questa domanda riguarda) che ci sono pochissimi strumenti per TDD / C ++ / VS.
Cercando su google, ho trovato uno strumento, VisualAssert , che sembra mirare nella giusta direzione. Tuttavia, a dire il vero, non sembra essere molto diffuso (rispetto a CppUnit, Boost.Test ecc.).
Modifica: vorrei aggiungere un commento al contesto per questa domanda. Penso che faccia un buon riassunto del problema (parte del problema) (commento di Billy ONeal )
Visual Studio does not use "build scripts" that are reasonably editable by the user. One project produces one binary. Moreover, Java has the property that Java never builds a complete binary -- the binary you build is just a ZIP of the class files. Therefore it's possible to compile separately then JAR together manually (using e.g. 7z). C++ and C# both actually link their binaries, so generally speaking you can't write a script like that. The closest you can get is to compile everything separately and then do two linkings (one for production, one for testing).