Jika saya sudah memiliki tes integrasi untuk program saya, dan mereka semua lulus, maka saya merasa itu akan berhasil. Lalu apa alasan untuk menulis / menambah unit test? Karena saya sudah harus menulis tes integrasi, saya hanya ingin menulis unit test untuk bagian yang tidak tercakup oleh tes integrasi.
Apa yang saya tahu manfaat dari tes unit daripada tes integrasi
- Kecil dan karenanya cepat dijalankan (tetapi menambahkan unit baru untuk menguji sesuatu sudah diuji dengan uji integrasi berarti total test suit saya menjadi lebih besar dan lebih lama untuk dijalankan)
- Temukan bug lebih mudah karena hanya menguji satu hal (tapi saya bisa mulai menulis unit test untuk memverifikasi setiap bagian individu ketika tes integrasi saya gagal)
- Temukan bug yang mungkin tidak tertangkap dalam tes integrasi. mis. bug masking / offsetting. (tetapi jika integrasi saya menguji semua yang lulus, yang berarti program saya akan bekerja bahkan ada bug tersembunyi ada. Jadi temukan / perbaiki bug ini bukan prioritas yang sangat tinggi kecuali mereka mulai melanggar tes integrasi di masa depan atau menyebabkan masalah kinerja)
Dan kami selalu ingin menulis lebih sedikit kode, tetapi tes unit tulis membutuhkan lebih banyak kode (terutama mengatur objek tiruan). Perbedaan antara beberapa tes unit saya dan tes integrasi adalah bahwa dalam tes unit, saya menggunakan objek tiruan, dan dalam tes integrasi, saya menggunakan objek nyata. Yang memiliki banyak duplikasi dan saya tidak suka kode duplikat, bahkan dalam tes karena ini menambah overhead untuk mengubah perilaku kode (alat refactor tidak dapat melakukan semua pekerjaan sepanjang waktu).