Sono stato in quella posizione, sia in un vero TDD. Quello che faccio normalmente è scrivere test per le interfacce di altre persone, quando possibile. Ho poi sapere prima ho eseguito il mio codice se hanno fatto una delle tante cose comuni che la gente fa:
- Broke un'API da ri-denominazione o completamente facendo via con qualcosa di
- Broke un'API con i cambiamenti di tipo sottili che non farsi notare
- spinto un revisione tossica senza prove
- perdite di memoria Sprung (la mia suite di test è Valgrind a conoscenza)
- Block, dove non hanno mai bloccati prima
Uno di questi fallimenti di solito si tradurrebbe in me dicendo "Ehi, puoi controllare (modulo), penso che si sia rotto nell'ultima revisione"
Questo è diventato brutto solo una volta.Qualcun altro si è davvero arrabbiato perché stavo scrivendo dei test per il loro codice e ha insistito sul fatto che ero fuori per il loro lavoro. Non riuscivo a far capire alla persona che ero appena uscito per rendere più facile il mio lavoro.
Non è mai una buona idea venire fuori e dire "Guarda, sto spendendo più tempo a eseguire il debug del tuo codice piuttosto che lavorare per conto mio", a meno che tu non sia assolutamente obbligato (il tuo capo ti chiede delle tue prestazioni). Il più delle volte, se mandi i test alle persone, sono felici di averli. Se stai già incontrando resistenza con l'idea, cerca semplicemente di non offendere nessuno o sembrare condiscendente.
Le funzioni di mock/stub sono ok, ma ciò che rimane è che il programma nel suo insieme è ancora suscettibile di interruzione se i test reali non vengono eseguiti. Almeno, quando ciò accade, puoi escludere rapidamente le tue cose e (probabilmente) puntare direttamente al problema.
fonte
2010-03-25 14:27:27
IMO, se non si desidera modificare il codice, è un codice legacy. –
Puoi modulare il tuo codice abbastanza bene per TDD e comunque in qualche modo adattarsi al resto del codice? Inoltre, tratterei "OOP è troppo complesso" come una bandiera di avvertimento rossa molto grande. Programmare in generale è un'attività complessa e sfuggire a una tecnica potente ben conosciuta e ben compresa (che non è così complessa se fatta bene) non è un buon segno. –
Purtroppo ho imparato che "l'OOP è troppo complesso", dopo aver firmato il contratto e trasferito in questa città, altrimenti avrei cercato un altro datore di lavoro. Sono d'accordo sul fatto che l'OOP non sia molto complesso se fatto bene e l'ho nascosto a volte, sperando che gli altri non si lamentino abbastanza forte perché il mio superiore lo senta. – dbemerlin