Intern Wellcode.io - The Three Laws of TDD by Clean Code

Jadi software engineer bukan berarti gabisa sukses berbisnis loh, join dulu ke pinterusaha.ai


First Law

You may not write production code until you have written a failing unit test.

Anda tidak boleh menulis kode produksi sampai Anda menulis unit test yang gagal.

Second Law 

You may not write more of a unit test than is suffcient to fail, and not compiling  is failing.

Anda tidak boleh menulis lebih dari satu unit test gagal, dan tidak mengkompilasi kegagalan.

Third Law

You may not write more production code than is suufficient to pass the curently failing test.

Anda tidak boleh menulis kode lebih banyak daripada produksi, cukup untuk lulus tes yang gagal saat ini.

Ketiga undang-undang ini mengunci Anda ke dalam sebuah siklus yang panjangnya mungkin tiga puluh detik. Tes dan kode produksi ditulis bersama, Jika kita bekerja dengan cara ini, kita akan menulis beberapa lusin tes per hari, ratusan tes setiap bulan, dan ribuan tes setiap tahun. Jika kami bekerja dengan cara ini, maka akan mencakup hampir semua kode produksi kami. Sebagian besar dari tes tersebut, yang dapat menyaingi ukuran kode produksi itu sendiri, dapat menyajikan masalah manajemen yang menakutkan.

Keeping Tests Clean-Menjaga tes bersih

"Cepat dan kotor" ini adalah semboyan sebelum mereka menjaga kode yang bersih. Variabel mereka tidak harus dinamai dengan baik, fungsi pengujian tidak harus pendek dan deskriptif. Kode uji mereka tidak perlu dirancang dengan baik dan dipartisi. Selama kode pengujian berfungsi, dan selama kode produksi tercakup, itu sudah cukup baik. Terkadang tim tidak menyadari bahwa memiliki tes kotor setara dengan kode buruk atau tidak memiliki tes. Masalahnya adalah tes harus berubah sebagai kode produksi yang berkembang. Semakin kotor tes, semakin sulit untuk berubah. Semakin nuruk kode tes,semakin besar kemungkinan Anda akan menghabiskan lebih banyak waktu mengerjakan tes baru maka dari itu diperlukan untuk menulis kode produksi baru. 

 Clean Tests

What makes a clean test? Three things. Readability, readability, and readability. Readability is perhaps even more important in unit tests than it is in production code. What makes tests readable? The same thing that makes all code readable: clarity,and density of expression. 

 Dalam ujian Anda ingin banyak berbicara dengan ekspresi yang sesedikit mungkin.


F.I.R.S.T.

Clean tests follow five other rules that form the above acronym

Fast Tes harus cepat, jika tes berjalan lambat maka anda tidak akan menjalankannya. Maka anda akan menemukan masalah di akhir, hal seperti ini membuat anda tidak bebas untuk memperbaiki dan membersihkan kode agar bersih karena waktu yang sangat singkat. Akhirnya kode mulai membusuk.

Independent Tes seharusnya tidak saling bergantung. Satu tes tidak boleh mengatur kondisi untuk tes berikutnya. Anda harus dapat menjalankan setiap tes secara independen dan menjalankan tes dalam pesanan apa pun yang Anda suka. Ketika tes tergantung satu sama lain, maka yang pertama menyebabkan kegagalan hilir, membuat diagnosis sulit dan menyembunyikan cacat hilir.

Repeatable Tes harus dapat diulang di lingkungan mana pun. Anda harus dapat menjalankan tes di lingkungan produksi, di lingkungan QA, dan di laptop Anda, ataupun saat pulang ke rumah di kereta dalam keadaan tanpa jaringan. Jika pengujian Anda tidak dapat diulang di lingkungan apa pun, maka Anda akan selalu memiliki alasan mengapa gagal? Anda juga tidak akan bisa untuk menjalankan tes ketika lingkungan tidak tersedia.

Self-Validating Tes harus memiliki output boolean. Entah mereka lulus atau gagal. Anda

tidak harus membaca file log untuk mengetahui apakah tes lulus. Anda tidak perlu membandingkan dua file teks yang berbeda untuk melihat apakah tes lulus atau tidak secara manual. Jika tes tidak tervalidasi, maka kegagalan bisa menjadi subyektif dan menjalankan tes bisa membutuhkan waktu yang lama.

Timely Tes harus ditulis tepat waktu. Tes unit harus ditulis sebelum kode produksi yang mereka lulus. Jika Anda menulis tes setelah produksi kode, maka Anda mungkin menemukan kode produksi sulit untuk diuji. Anda mungkin memutuskan kode produksi yang terlalu sulit untuk diuji. Bahkan anda mungkin tidak merancang kode produksi untuk dapat diuji.

by: nurul syifffa ^,^

Wellcode.io Team

Leading high-tech Indonesia Startup Digital - which serves the community with revolutionary products, system development, and information technology infrastructure