Saya memiliki hierarki kelas java yang dibentuk oleh kelas Abstrak dan ekstensi N-nya. Di kelas abstrak saya memiliki metode yang dijelaskan dengan penjelasan @Remove. Meskipun kami tidak akan mendapatkan pengecualian tidak akan gagal cepat jika penjelasan ini dihapus, kami mungkin keluar dari pengecualian memori, jadi saya ingin memastikan bahwa kami memperhatikan secepat mungkin jika penjelasan ini menghilang di beberapa refactoring.
Saya mencoba membuat GUTS (tes unit bagus), jadi saya pikir saya bisa mendokumentasikan "persyaratan teknis" ini dalam pengujian saya, dengan test case yang menyatakannya.
Tapi ini bukan fitur, itu sebagai detail implementasi dan tidak terkait dengan perilaku metode (metode ini bisa kosong, tetapi harus ada dan harus dijelaskan).
Apakah boleh membuat tes untuk itu atau ada cara lain untuk memeriksa keberadaan anotasi ini?
sumber
Jawaban:
Ya buat tes unit. Anda mengatakan bahwa jika anotasi dihapus maka Anda dapat keluar dari bug memori yang sedang diproduksi. Itu akan menjadi bug pembunuh. Membiarkan itu terjadi karena beberapa gagasan bahwa tes entah bagaimana harus dibatasi adalah tidak produktif. Tes harus memeriksa kebenaran dalam semua pengertian. Semakin cepat Anda mendeteksi masalah yang mungkin semakin baik sehingga memiliki unit test dan gagal membangun CI adalah cara yang solid untuk mencegah bug. Mencoba menemukan mekanisme lain untuk mencegah masuknya bug semacam itu sepertinya tidak ada artinya. Setiap pengembang baru harus diberi penjelasan tentang cara menangani "kasus khusus" dari tidak ada uji kebenaran fungsional. Kemungkinan besar itu bukan penggunaan waktu pengembang yang baik.
Edit Tim yang melakukan BDD cenderung memisahkan tes fungsional bisnis dari tes teknis seperti tes kinerja. Biasanya tim memiliki berbagai jenis tes termasuk tes integrasi yang jarang dilakukan dibandingkan tes logika bisnis inti mereka. Ini biasanya dilakukan dengan membangun profil sehingga pengembang dalam aliran mereka dapat menjalankan tes logika bisnis cepat sering dan tes integrasi lebih lambat sebelum mereka melakukan kode. CI build akan menjalankan semua tes.
sumber
Ketika fungsi kritis diimplementasikan menggunakan teknik deklaratif seperti ini, saya cenderung lebih suka menggunakan tes integrasi yang mencakup bagian dari kerangka kerja yang mengakui deklarasi. Ini melindungi Anda dari perubahan perilaku kerangka kerja, kesalahpahaman tentang efek deklarasi, dan sebagainya. Cukup menguji keberadaan anotasi tidak menjamin perilaku tertentu.
sumber