Setelah beberapa tahun coding dan mengerjakan proyek saya akan memberikan jawaban untuk pertanyaan saya sendiri.
Ya, Anda harus menulis unit test. Tes ujung ke ujung lebih sulit untuk ditulis dan rapuh terutama jika mereka mengandalkan komponen UI.
Jika Anda menggunakan kerangka kerja seperti Django atau Rails (atau kelas kustom Anda sendiri), Anda harus memiliki kelas formulir yang akan menangani validasi formulir. Anda juga akan melihat kelas yang menampilkan templat yang diberikan dan formulir serta menangani permintaan GET dan POST.
Dalam tes ujung ke ujung Anda akan:
- dapatkan url
- isi formulir dengan data yang valid
- poskan formulir ke url
- periksa untuk memastikan bahwa basis data telah diperbarui atau beberapa tindakan telah dilakukan sebagai hasil dari formulir yang valid
Anda menguji banyak kode dan cakupan Anda akan cukup bagus, tetapi Anda hanya menguji jalur bahagia ketika semuanya berjalan dengan baik. Bagaimana Anda memastikan bahwa formulir memiliki validasi yang benar di dalamnya? Bagaimana jika formulir itu digunakan pada banyak halaman? Apakah Anda menulis tes ujung ke ujung lagi?
Mari kita coba ini lagi dengan unit test:
- menguji metode tampilan GET
- uji metode tampilan POST dengan formulir palsu / tiruan
- uji formulir dengan data yang valid
- uji formulir dengan data yang tidak valid
- uji efek samping formulir
Dengan menggunakan tes unit, Anda menguji potongan kode yang lebih kecil dan tes khusus dan lebih mudah untuk ditulis. Ketika Anda menggabungkan ini dengan TDD (Test Driven Development) Anda mendapatkan kode kualitas yang lebih tinggi.
Kemudahan penulisan unit test tidak boleh diabaikan karena ketika Anda berada di proyek yang tidak memiliki pengujian otomatis, Anda harus memulai suatu tempat. Memulai dengan unit test lebih mudah dan lebih cepat dan memungkinkan Anda segera mulai menguji bug daripada hanya untuk jalur senang.
was told by a co-worker that the reason for this is that we can rip out and change the underlying implementation at any point as long as the end-to-end tests pass.
- Itu juga berlaku untuk unit test. Bagi saya sepertinya tes ujung ke ujung digunakan sebagai alasan untuk tidak menulis tes unit.