Unit Pengujian mengacu pada apa yang Anda menguji, TDD untuk saat Anda menguji.
Keduanya orthogonal.
Unit Testing berarti, baik, menguji unit perilaku individu. Unit perilaku individu adalah unit perilaku terkecil yang dapat diuji secara terpisah. (Saya tahu bahwa kedua definisi itu melingkar, tetapi dalam praktiknya tampaknya cukup berhasil.)
Anda dapat menulis unit test sebelum Anda menulis kode Anda, setelah Anda menulis kode Anda atau saat Anda menulis kode Anda.
TDD berarti (sekali lagi, agak jelas) membiarkan tes Anda mendorong pengembangan Anda (dan desain Anda). Anda dapat melakukannya dengan tes unit, tes fungsional, dan tes penerimaan. Biasanya, Anda menggunakan ketiganya.
Bagian terpenting dari TDD adalah D tengah . Anda membiarkan tes mendorong Anda. Tes memberi tahu Anda apa yang harus dilakukan, apa yang harus dilakukan selanjutnya, ketika Anda selesai. Mereka memberi tahu Anda apa yang akan menjadi API, apa desainnya. (Ini penting: TDD bukan tentang menulis tes terlebih dahulu. Ada banyak proyek yang menulis tes terlebih dahulu tetapi jangan berlatih TDD. Tes menulis terlebih dahulu hanyalah prasyarat untuk dapat membiarkan tes mendorong pengembangan.)