Apakah menulis unit test membosankan? 4 alasan mengapa Anda harus | oleh Evgenii Shishko Juni 2022

Programming

[ad_1]
Hai Sob di suratpembaca.web.id. Dalam kesempatan ini kita akan mengupas tentang Linux yaitu Apakah menulis unit test membosankan? 4 alasan mengapa Anda harus | oleh Evgenii Shishko Juni 2022

.

Sekiranya artikel mengenai Apakah menulis unit test membosankan? 4 alasan mengapa Anda harus | oleh Evgenii Shishko Juni 2022

dapat memberikan manfaat untuk Sahabat semua. Langsung saja baca artikel ini
hingga selesai.

Dengan contoh di iOS

Foto oleh Ben Mullins di Unsplash

Ada tutorial dan panduan bagus untuk pemula tentang cara melepaskan kekuatan penuh kerangka kerja iOS untuk mengembangkan aplikasi iOS yang menakjubkan. Pada saat yang sama, kebanyakan pemula menghindari subjek tes unit atau bahkan tidak menyadari keberadaannya.

Selain itu, bahkan tim iOS yang lebih matang yang mengerjakan proyek berukuran sedang atau besar mengabaikan pengujian unit penulisan sama sekali. Saya tidak akan berbohong bahwa itu juga tidak jelas bagi saya sebelum beberapa titik dalam karir saya. Jadi saya ingin berbicara tentang mengapa menguji kode Anda sangat penting dan berguna. Di artikel lain yang akan saya terbitkan nanti, saya akan membahas praktik terbaik dan alat untuk membantu Anda menulis tes iOS dengan mudah.

PS Hal-hal yang ingin saya bicarakan tidak hanya berlaku untuk pengembangan iOS, meskipun contohnya ditulis dalam Swift dan untuk pengembangan iOS.

Lebih banyak dapat ditemukan tetapi saya yakin 4 ini cukup untuk meyakinkan Anda.

Ketika basis kode Anda berkembang, menjadi sulit untuk menguji secara manual semua bagian sistem yang telah mengubah perilakunya setelah perubahan kode baru.

Dalam contoh berikut, kami memiliki beberapa bidang Boolean yang terkait dengan menampilkan atau tidak menampilkan tombol untuk pengguna:

Dan kami memiliki garis dalam pengujian kami untuk memeriksa apakah itu benar setelah inisialisasi:

Jika kita berubah needToShowButton Klausul untuk dipertimbangkan isUserAuthorized menjadi true Serentak:

Pengujian kami akan rusak dan kami perlu mengaturnya ke perilaku yang diharapkan (misalnya nilai harus salah dengan kondisi baru)

Jujur saja – kami tidak menulis dokumentasi untuk semua kode yang kami tulis (dan untuk beberapa hal itu tidak perlu). Tes unit berjalan pada beberapa input sampel dan lulus ketika hasilnya sesuai dengan harapan, jadi ini adalah cara yang bagus untuk mempelajari cara kerja beberapa komponen sistem dan harus digunakan dengan mengamati dan menjalankan tes yang mencakupnya. .

Berikut adalah contoh di mana kita dapat melihat parameter apa yang dapat dilewatkan dan bagaimana layanan mengubah waktu putaran dan jumlah item dengan parameter tertentu di input:

Jika kode ditulis dengan buruk dan tidak dapat diskalakan, Anda tidak akan dapat menutupinya dengan tes. Untuk menulis pengujian unit yang berguna, Anda perlu mengisolasi bagian komponen yang diuji untuk mengonfigurasi lingkungan dengan benar untuk menguji kasus penggunaan yang berbeda.

Dalam contoh, ada subkelas yang tidak terstruktur dengan baik yang sulit untuk diuji dengan benar. Seperti yang Anda lihat, kami tidak dapat mengontrol apa yang dihasilkan layanan dan apa yang diproduksi pabrik:

Pabrik dan Layanan dapat disuntikkan melalui Penginisialisasi di bawah protokol (antarmuka) sehingga kita dapat mengejeknya dengan objek kita dan menentukan perilaku untuk instance yang berbeda. Anda dapat membaca lebih lanjut tentang injeksi ketergantungan di sini.

Anda pasti akan menghabiskan lebih banyak waktu untuk mengimplementasikan fitur dengan sepenuhnya mencakup fitur melalui pengujian unit (pengujian unit yang berguna!). Namun, cepat atau lambat Anda akan menghemat banyak waktu dalam pengujian regresi manual Anda.

Bayangkan saja, program Anda diperbesar dan memiliki 100 ribu baris kode lagi. Setelah beberapa refactoring yang membuat lubang di sebagian besar kode Anda, Anda pasti ingin mengujinya dengan berat. Menguji semua kasus tepi secara manual untuk menjalankan pengujian unit sangat lemah dan jauh lebih andal.

Seperti yang saya katakan di atas, Anda mungkin akan menghabiskan lebih banyak waktu untuk mempelajari cara menulis unit test dengan benar.

Beberapa dari Anda yang telah mencoba dan mempelajarinya dapat berargumen bahwa itu juga membutuhkan banyak waktu untuk menghasilkan kode boilerplate, dependensi tiruan, dll.

Tidak apa-apa jika Anda melakukannya secara manual dan tidak menggunakan alat yang menghemat waktu Anda melakukan tugas yang berulang.

Seperti yang saya katakan sebelumnya, saya akan menyiapkan artikel berikutnya tentang menyiapkan lingkungan Anda untuk membuat penulisannya cepat dan tidak merepotkan dengan mengotomatiskan tugas-tugas umum. Semoga segera selesai

Anda tidak harus bertujuan untuk menutupi 100% baris kode.

Pertama-tama, ini murni karena prinsip Pareto – Anda akan menghabiskan lebih banyak waktu untuk mencapai kriteria 80-100% karena tidak membuat banyak lompatan dalam utilitas.

Kedua, berbicara tentang pengembangan iOS, menutupi lapisan tampilan modul fitur sangat sulit.

Mari kita pertimbangkan contoh di mana Anda memutuskan untuk menguji bahwa beberapa tampilan dikonfigurasikan untuk memperbarui labelnya setelah model Anda memanggil panggilan balik. Tentu saja, Anda dapat memeriksa apakah tag memiliki bidang teks sehingga tidak kosong, tetapi Anda mungkin lebih peduli dengan tampilannya di halaman pengguna.

Jadi pendekatan terbaik yang saya pribadi lebih suka adalah membuat lapisan tampilan sebodoh mungkin (pindahkan logika Anda melalui lapisan di bawah) dan tulis tes snapshot atau tes UI, tapi itu cerita yang sama sekali berbeda.

Oke, saya harus menunjukkan bahwa saya tidak berpikir Anda harus menulis tes unit di tempat pertama.

Yang pertama adalah proyek hewan peliharaan kecil atau proyek percontohan Anda sendiri. Anda perlu mempertimbangkan apa tujuan utama Anda. Jika hanya untuk menguji beberapa teknologi baru (misalnya fitur dan kerangka kerja WWDC baru), tidak ada gunanya menguji diri sendiri dalam tes tertulis.

Kedua, jika itu adalah kode lama. Jika Anda ingin menutupi kode lama yang tidak terstruktur dengan baik dengan pengujian, akan lebih mudah untuk memfaktorkannya kembali dan menulis pengujian komponen baru karena Anda akan membuang banyak waktu untuk mengejek dependensi dan menguji kasus tepi.

Singkatnya, segera setelah Anda mulai membahas kode Anda dengan pengujian unit, Anda akan melihat dampak yang saya jelaskan dan bagaimana Anda akan berpikir secara berbeda dan menjadi pengembang yang lebih baik.

Yang juga penting adalah itu berfungsi jika Anda menulis tes dengan cerdas karena tidak terlalu sulit untuk mulai membuat tes unit yang tidak berguna. Ada banyak artikel dan buku bagus tentang itu – Anda bisa mulai dengan yang ini.

Demikian artikel mengenai Apakah menulis unit test membosankan? 4 alasan mengapa Anda harus | oleh Evgenii Shishko Juni 2022

, terimakasih telah mengunjungi website ini, mudah-mudahan artikelnya ada manfaatnya ya.

[ad_2]

Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.