Saya harus menulis tes unit dan tes integrasi untuk sebuah proyek.
- Haruskah semua tes dimasukkan ke dalam folder tes tunggal ?
- Atau haruskah tes unit dan tes integrasi masing-masing berada di folder tes yang terpisah ?
- Atau haruskah saya menempatkan mereka dalam proyek terpisah ?
Jika saya menyatukannya, apakah ada kelebihan atau kekurangan dengan pendekatan ini?
architecture
unit-testing
integration-tests
Ahmed Ragheb
sumber
sumber
Jawaban:
Secara umum: ya, Anda harus memasukkan tes integrasi dan tes unit ke folder yang berbeda. Seringkali, programmer tidak menarik garis yang jelas antara dua jenis tes ini dan hanya menulis jenis tes apa pun yang berguna. Tetapi tes integrasi cenderung lebih lambat, karena sering melibatkan:
Sebaliknya, tes unit akan mengejek operasi yang mahal, sehingga tes unit cenderung berjalan cepat (pada kenyataannya, bagian paling lambat dari menjalankan tes sering kerangka uji itu sendiri).
Ketika seorang programmer bekerja pada sistem mereka berada dalam siklus edit-tes. Semakin cepat mereka mendapatkan umpan balik pengujian dan semakin pendek siklusnya, semakin produktif mereka. Jadi di sana kami hanya ingin menjalankan tes penting yang selesai dengan cepat. Rangkaian uji lengkap hanya akan dieksekusi sebagai bagian dari proses QA, misalnya pada server CI.
Ini berarti bahwa suite uji besar harus dikategorikan. Bisakah kita hanya memilih tes unit untuk komponen tertentu? Bisakah kita mengecualikan tes lambat? Salah satu cara sederhana untuk melakukan ini adalah mempertahankan suite tes yang berbeda di direktori yang berbeda. Jika Anda hanya memiliki sedikit tes, satu direktori juga akan baik-baik saja selama seorang programmer dapat dengan mudah memilih subset tes.
Apa pun yang memungkinkan seorang programmer mendapatkan umpan balik dengan cepat adalah baik. Test suite paling komprehensif tidak masalah jika tidak dieksekusi secara teratur.
Bacaan lebih lanjut:
sumber