Workflow Pengembangan

Tulis Kode Lebih Bersih dengan TDD Bertenaga Claude

Red, green, refactor, dengan AI yang menulis tes

Claude Code sangat baik dalam TDD, kamu menjelaskan perilaku yang kamu inginkan, ia menulis tes yang gagal terlebih dahulu, lalu mengimplementasikan kode yang membuatnya lolos. Ini membalikkan titik masalah tradisional TDD: menulis tes bukan lagi bagian yang lambat. Kamu berfokus pada menentukan perilaku dalam bahasa sehari-hari, dan Claude Code menangani pekerjaan berulang berupa setup tes, assertion, dan mocking. Hasilnya adalah cakupan tes yang lebih tinggi, kode yang lebih baik desainnya, dan pengembangan yang lebih cepat.

Pengembangan berbasis pengujian dengan Claude Code mengikuti siklus red-green-refactor: kamu menjelaskan perilaku yang kamu inginkan, biarkan Claude menulis tes yang gagal, lalu minta ia mengimplementasikan kode untuk melewatinya. Claude Code menangani seluruh loop secara mandiri ketika diberi spesifikasi yang jelas.

Loop

Loop TDD dengan Claude Code

R
Red, tulis tes yang gagal

Jelaskan perilaku yang ingin kamu implementasikan: "Pengguna harus bisa mengatur ulang password mereka lewat email. Endpoint harus memvalidasi bahwa email itu ada, membuat token dengan batas waktu, dan mengirim link reset." Claude Code menulis tes terlebih dahulu, memastikan respons HTTP yang diharapkan, pembuatan token, dan pengiriman email, sebelum ada implementasi apa pun. Ia menjalankan tes untuk memastikan tes itu gagal karena alasan yang tepat (fungsi yang hilang, bukan error sintaks).

G
Green, implementasikan kode minimum

Claude Code kemudian menulis implementasi paling sederhana yang membuat tes lolos. Ia tidak over-engineer, ia menulis kode yang persis cukup untuk memenuhi assertion tes. Disiplin ini adalah titik di mana TDD bersinar: tes mendefinisikan kontrak, dan implementasi memenuhinya. Claude Code menjalankan test suite setelah menulis implementasi untuk memverifikasi tes baru lolos dan tidak ada tes yang sudah ada yang rusak.

R
Refactor, memperbaiki tanpa mengubah perilaku

Dengan tes yang lolos sebagai jaring pengaman, kamu meminta Claude Code untuk membersihkan implementasi: mengekstrak fungsi helper, memperbaiki nama variabel, mengurangi duplikasi, atau mengoptimalkan performa. Setelah setiap langkah refactoring, Claude Code menjalankan ulang tes. Jika ada tes yang gagal, refactoring tersebut memperkenalkan perubahan perilaku, dan Claude Code akan membatalkannya atau menyesuaikannya. Fase ini menghasilkan kode yang bersih dan mudah dirawat, didukung oleh tes yang komprehensif.

Panduan Langkah demi Langkah

Menulis fitur berbasis pengujian pertamamu

Langkah 1: Jelaskan perilaku, bukan implementasi

Mulailah dengan memberi tahu Claude Code apa yang harus dilakukan fitur tersebut dari sudut pandang pengguna. Daripada "buat fungsi bernama calculateDiscount yang menerima harga dan persentase," katakan "pelanggan dengan membership premium harus mendapat diskon 20% dari total pesanan mereka, tapi diskon tidak boleh melebihi $50." Deskripsi berbasis perilaku ini menghasilkan tes yang lebih baik karena tes memverifikasi aturan bisnis, bukan detail implementasi.

Langkah 2: Tinjau tes yang dihasilkan

Claude Code menulis file tes dengan beberapa kasus uji: jalur normal (pengguna premium, diskon valid), edge case (diskon melebihi batas $50, pesanan dengan harga nol), dan kasus error (pengguna bukan premium, harga negatif). Tinjau tes ini sebelum membiarkan Claude Code mengimplementasikan fitur tersebut. Kasus uji mendefinisikan spesifikasimu; jika ada kasus yang hilang, tambahkan sekarang. Jauh lebih murah menambahkan kasus uji daripada menemukan edge case yang hilang saat sudah di produksi.

Langkah 3: Biarkan Claude Code mengimplementasikan dan mengiterasi

Setelah kamu menyetujui tes, minta Claude Code untuk mengimplementasikan fitur tersebut. Ia menulis kode, menjalankan tes, dan menunjukkan hasilnya kepadamu. Jika semua tes lolos pada percobaan pertama, kamu dapat beralih ke refactoring. Jika beberapa tes gagal, Claude Code membaca output kegagalan dan menyesuaikan implementasi. Siklus ini biasanya selesai dalam satu atau dua iterasi, jauh lebih cepat daripada loop manual menulis-menjalankan-debug.

Mengapa Ini Berhasil

Mengapa Claude Code membuat TDD lebih mudah

Ini menghilangkan friksi penulisan tes

Alasan utama developer melewatkan TDD adalah karena menulis tes terasa lambat dan membosankan, terutama kode setup, mocking, dan assertion berulang. Claude Code menghilangkan friksi ini sepenuhnya. Kamu menjelaskan apa yang harus terjadi dalam satu kalimat, dan Claude Code menghasilkan file tes lengkap dengan import yang benar, fixture, mock, dan cakupan edge case. Beban kognitif berpindah dari "bagaimana saya mock dependensi ini" menjadi "perilaku apa yang penting."

Ini menangkap edge case yang mungkin kamu lewatkan

Ketika Claude Code menulis tes dari deskripsi perilaku, ia menghasilkan edge case yang sering dilupakan developer: input kosong, nilai batas, akses konkuren, penanganan null, dan transisi status yang tidak valid. Ia melakukan ini karena telah melihat jutaan test suite dan tahu edge case mana yang umumnya menyebabkan bug. Kamu mendapatkan cakupan tes yang lebih menyeluruh tanpa harus memikirkan setiap kasus sendiri.

Ini membuatmu tetap berada dalam disiplin TDD

TDD sulit dipertahankan karena godaan untuk melewatkan tes dan langsung menulis kode selalu ada. Dengan Claude Code, menulis tes terlebih dahulu sebenarnya lebih cepat daripada menulis implementasi terlebih dahulu, jadi tidak ada insentif untuk melewatkannya. Siklus Red-Green-Refactor menjadi alami karena Claude Code menegakkan setiap langkah: ia menulis tes, menjalankannya untuk memastikan kegagalan, mengimplementasikan kode, dan menjalankan ulang tes untuk memastikan keberhasilan.

Dukungan Framework

Framework pengujian yang didukung Claude Code

Jest & Vitest (JavaScript/TypeScript)

Claude Code menulis tes Jest dan Vitest dengan mocking yang tepat, penanganan asinkron, snapshot testing, dan integrasi React Testing Library. Ia menghasilkan blok describe/it yang terbaca seperti spesifikasi dan menggunakan beforeEach/afterEach untuk isolasi tes yang bersih.

pytest (Python)

Dukungan penuh pytest termasuk fixture, parametrize, mark, conftest.py, dan plugin seperti pytest-asyncio, pytest-django, dan pytest-mock. Claude Code menulis tes yang menggunakan dependency injection melalui fixture dan mengikuti pola Arrange-Act-Assert.

Tes Go & Rust

Claude Code menulis tes Go table-driven yang idiomatik dengan error wrapping dan subtest yang tepat, serta fungsi Rust #[test] dengan penanganan Result yang benar, setup/teardown, dan integrasi proptest untuk pengujian berbasis properti.

End-to-end dengan Playwright

Untuk TDD full-stack, Claude Code menulis tes Playwright yang menjalankan seluruh aplikasimu dari browser. Ia menangani navigasi halaman, interaksi form, assertion API, dan regresi visual, memungkinkanmu menjelaskan user story sementara ia menghasilkan skrip tes otomatis.

FAQ

TDD dengan Claude Code, pertanyaan umum

Bisakah saya menggunakan Claude Code TDD pada proyek yang sudah ada?

Tentu saja. Claude Code membaca infrastruktur pengujian yang sudah ada, framework pengujian, fixture, mock, factory, dan konvensimu, dan menulis tes baru yang cocok secara alami dengan suite yang sudah ada. Jika proyekmu menggunakan pytest dengan fixture conftest.py, Claude Code menghasilkan tes yang menggunakan fixture tersebut. Jika proyek React-mu menggunakan Testing Library dengan utilitas render khusus, Claude Code mengikuti pola tersebut. Kamu tidak perlu mulai dari awal.

Target cakupan apa yang harus saya tuju?

Persentase cakupan kurang penting dibandingkan kualitas cakupan. Claude Code membantumu fokus pada cakupan perilaku daripada cakupan baris. Ketika kamu menjelaskan fitur dalam hal apa yang harus dilakukannya (bukan bagaimana), tes yang dihasilkan secara alami mencakup jalur yang penting. Meski demikian, Claude Code dapat menganalisis laporan cakupan yang sudah ada dan mengidentifikasi cabang yang belum diuji, lalu menulis tes yang ditargetkan untuk mengisi kesenjangan. Targetkan cakupan menyeluruh untuk logika bisnis dan penanganan error, bukan cakupan baris 100%.

Bisakah Claude Code menulis tes integrasi?

Ya. Claude Code menulis tes integrasi yang menjalankan beberapa komponen bersamaan, endpoint API yang menyentuh database tes nyata, komponen React yang berinteraksi dengan respons API yang dimock, atau service layer yang mengoordinasikan beberapa dependensi. Ia menangani setup dan teardown database tes, fixture tes, dan konfigurasi mock server. Untuk tes integrasi API, ia menghasilkan tes yang memverifikasi siklus request-response lengkap termasuk autentikasi, validasi, dan respons error.

Bagaimana fase refactoring bekerja?

Setelah Green (tes lolos dengan implementasi yang berfungsi), kamu memasuki fase Refactor. Minta Claude Code untuk meningkatkan implementasi, mengekstrak fungsi, mengurangi duplikasi, meningkatkan penamaan, atau mengoptimalkan performa. Claude Code membuat perubahan dan menjalankan ulang test suite setelah setiap langkah refactoring. Jika sebuah tes gagal, itu berarti refactoring mengubah perilaku, dan Claude Code akan memperbaiki refactoring tersebut atau menandai perubahan perilaku untuk ditinjau. Tes berfungsi sebagai jaring pengaman selama proses ini.

Apa workflow TDD terbaik dengan AI?

Jelaskan perilaku fitur dalam bahasa alami, biarkan Claude Code menulis tes yang gagal (Red), lalu minta ia mengimplementasikan kode untuk membuat tes lolos (Green), dan terakhir minta refactoring (Refactor). Siklus Red-Green-Refactor ini dengan Claude Code lebih cepat daripada TDD manual karena Claude menulis baik tes maupun implementasi sementara kamu fokus mendefinisikan kebutuhan.

Apakah Claude Code menjalankan tes secara otomatis selama TDD?

Ya. Claude Code menjalankan test suite-mu setelah menulis setiap tes dan setelah setiap perubahan implementasi. Ia membaca output tes, mengidentifikasi kegagalan, dan beriterasi sampai tes lolos. Kamu juga dapat mengatur hook untuk menjalankan linter dan type checker secara otomatis setelah setiap edit file, menciptakan quality gate yang sepenuhnya otomatis.

Pelajari TDD dengan Claude Code

Berhenti membaca soal itu. Bangun sesuatu.

Nightschool AI adalah platform pembelajaran independen dan tidak berafiliasi dengan, didukung oleh, atau disponsori oleh Anthropic. Claude adalah merek dagang dari Anthropic, PBC. Mencari Claude Academy resmi dari Anthropic? Kunjungi academy.claude.com.