Ini adalah pertanyaan yang menarik dan jawabannya mungkin lebih mudah dari yang Anda pikirkan.
Sederhananya, tulis tes yang memvalidasi asumsi Anda. Tidak masalah jika Anda melakukan implementasi atau sesama programmer
Jawaban panjangnya.
Salah satu opsi yang Anda daftarkan agak pasif dan mengharuskan Anda untuk kembali dan mengunjungi kembali kode (jika ada) cepat atau lambat.
- Komentar perlu dibaca dan ditangani oleh rekanan Anda yang bertanggung jawab atas implementasi. Sementara itu kode Anda tidak dapat dikompilasi. Jika Anda memeriksa keadaan tersebut di repositori kode, pipa integrasi berkesinambungan Anda tidak akan berfungsi, dan itu adalah praktik yang buruk ... jangan pernah memeriksa dalam kode yang rusak
- Pengecualian runtime tampaknya lebih baik, tetapi masih beracun, karena sesama programmer Anda dapat mengasumsikan bahwa implementasi sudah dilakukan tanpa memeriksa, meninggalkan sistem dalam keadaan tidak stabil juga. Jika metode ini dipicu tidak terlalu sering, itu dapat menyebabkan kode produksi yang rusak ... praktik yang buruk juga ... tidak pernah memeriksa pengecualian "tidak diterapkan"
- Menunggu sesama programmer untuk implementasi metode atau rintisan juga menakutkan. Itu merusak alur kerja Anda dan alur kerja sesama programmer Anda. Apa yang terjadi jika mereka sakit, saat rapat, saat rehat kopi, apakah Anda ingin menghabiskan waktu menunggu? ... jangan menunggu seseorang jika Anda tidak perlu
- menerapkan metode yang hilang pasti cara terbaik untuk maju. Tetapi apa yang terjadi jika implementasi Anda tidak memuaskan seluruh kasus penggunaan dan sesama programmer Anda perlu mengubah atau mengubahnya? Bagaimana Anda dan mereka memastikan bahwa itu masih kompatibel dengan yang Anda maksudkan? Jawabannya mudah lagi. Tulis tes yang memverifikasi, menjelaskan, dan mendokumentasikan niat Anda. Jika tes rusak, mudah diketahui. Jika perubahan dalam metode itu perlu dilakukan yang merusak fitur Anda ... Anda melihatnya segera. Anda berdua memiliki alasan untuk berkomunikasi dan memutuskan apa yang harus dilakukan. Membagi fungsionalitasnya? Ubah implementasi Anda, dll ... jangan pernah mencek kode yang tidak cukup didokumentasikan oleh tes
Untuk mencapai tingkat pengujian yang cukup, saya sarankan Anda melihat dua disiplin ilmu.
TDD - pengembangan yang digerakkan oleh tes - ini akan memastikan Anda menggambarkan maksud Anda dan mengujinya secara memadai. Ini juga memberi Anda kemungkinan untuk mengejek atau memalsukan metode dan kelas (juga dengan menggunakan antarmuka) yang belum diimplementasikan. Kode dan tes masih akan dikompilasi dan memungkinkan Anda untuk menguji kode Anda sendiri dalam isolasi kode sesama programer Anda. (lihat: https://en.wikipedia.org/wiki/Test-driven_development )
ATDD - pengembangan yang didorong oleh tes penerimaan - ini akan membuat loop luar (sekitar loop TDD) yang membantu Anda menguji fitur secara keseluruhan. Tes-tes ini hanya akan berubah hijau ketika seluruh fitur diimplementasikan, sehingga memberi Anda indikator otomatis ketika rekan Anda menyelesaikan pekerjaan mereka. Cukup rapi jika Anda bertanya kepada saya.
Peringatan: Dalam kasus Anda, saya hanya akan menulis tes penerimaan sederhana dan tidak mencoba untuk membawa terlalu banyak sisi bisnis, karena terlalu banyak untuk memulai. Tulis tes integrasi sederhana yang menggabungkan semua bagian sistem yang dibutuhkan fitur. Hanya itu yang dibutuhkan
Ini akan memungkinkan Anda untuk meletakkan kode Anda dalam pipa Integrasi Berkelanjutan dan menghasilkan implementasi yang sangat andal.
Jika Anda ingin mendapatkan lebih jauh dalam topik itu periksa tautan berikut: