Bagaimana Cara Menulis Tes Unit di Golang?

Bagaimana Cara Menulis Tes Unit Di Golang



Jika Anda seorang pengembang Go, Anda tahu betapa pentingnya pengujian untuk memastikan kualitas kode Anda. Menulis tes unit adalah bagian penting dari proses pengembangan, dan dapat membantu Anda menangkap bug sejak dini, menghemat waktu dan uang Anda dalam jangka panjang. Pada artikel ini, kita akan membahas cara menulis tes unit di Golang.

Apa itu Pengujian Unit?

Langkah pertama adalah memahami apa pengujian satuan cara. Pengujian unit mengacu pada proses pengujian unit atau modul kode kecil untuk memastikan bahwa masing-masing berfungsi seperti yang diharapkan. Pengujian unit digunakan untuk menghapus masalah dari kode, meningkatkan stabilitas kode, dan memastikan kebenaran saat memperbarui kode. Tahap awal pengujian perangkat lunak adalah uji satuan , yang dilanjutkan dengan uji UI dan uji integrasi.

Paket Pengujian

di Golang, pengujian satuan dilakukan dengan menggunakan paket yang disebut pengujian . Paket ini menyediakan berbagai fungsi yang memungkinkan kita menguji kode kita. Kode Go dapat diuji secara otomatis dengan bantuan paket pengujian.







Contoh Program untuk Diuji

Kami membutuhkan beberapa kode untuk pengujian kami untuk dianalisis sebelum kami dapat menulis apa pun tes unit . Kami akan membuat program kecil yang menambahkan dua angka.



paket utama

impor (
'fmt'
)
funcAdd ( A int , B int ) int {
kembali A + B
}

fungsi utama ( ) {
fmt. Println ( Menambahkan ( 2 , 3 ) )
}

Kode di atas mendefinisikan Menambahkan() fungsi, yang menambahkan dua angka, A Dan B , sebagai input dan menampilkan hasilnya sebagai bilangan bulat. Menjumlahkan angka 2 dan 3 adalah semua yang dilakukan fungsi utama sebelum mencetak hasilnya.







Konvensi Tes Unit Penulisan di Perjalanan

Setiap proyek Go harus memiliki file pengujian terpisah yang berisi semua pengujian untuk proyek tersebut. File tersebut harus memiliki nama yang sama dengan file yang sedang diuji dan seharusnya _test.go ditambahkan di akhir nama file. Misalnya, jika kita ingin menguji sebuah file bernama kalkulator.go , kita harus memberi nama file pengujian kita kalkulator_test.go .

Ini praktik standar untuk Pergi menguji file untuk ditempatkan di paket atau direktori yang sama dengan kode yang mereka evaluasi. Saat Anda menggunakan perintah go build, kompiler tidak membuat file-file ini, jadi Anda tidak perlu khawatir tentang kemunculannya di penerapan.



Untuk menulis sebuah uji satuan di Go, kita perlu menggunakan pengujian kemasan. Kita dapat memulai setiap fungsi pengujian dengan kata tersebut Tes lalu tambahkan deskripsi tentang apa yang ingin kita uji. Misalnya, TestAddition atau Pengurangan Tes . Kami kemudian dapat menulis kode pengujian yang memeriksa apakah fungsi yang kami uji mengembalikan hasil yang diharapkan.

Di Go, setiap fungsi pengujian harus dimulai dengan pernyataan t := pengujian.T{}. Pernyataan ini menciptakan yang baru pengujian objek yang dapat kita gunakan untuk memeriksa apakah tes telah lulus atau gagal. Kita kemudian dapat menggunakan t.Kesalahan() berfungsi untuk mencetak pesan kesalahan jika pengujian gagal.

Bagaimana Cara Menulis Kode Pengujian?

Saat menulis pengujian unit di Go, penting untuk memulai dengan menentukan paket yang ingin Anda uji. Setelah mengimpor paket pengujian, Anda dapat mengakses berbagai jenis dan metode yang diekspor paket, termasuk pengujian.T jenis. Logika pengujian itu sendiri kemudian ditulis dalam fungsi yang dimulai dengan kata kunci 'Tes' diikuti dengan nama deskriptif, seperti TestAdd() . Di dalam fungsi ini, Anda dapat menyertakan kode untuk pengujian dan pernyataan apa pun yang diperlukan untuk memverifikasi perilaku yang diharapkan.

Singkatnya, karakteristik tes di Go adalah sebagai berikut:

  • Parameter tunggal dan satu-satunya yang diperlukan adalah t *pengujian.T
  • Fungsi pengujian diawali dengan kata Test kemudian diikuti dengan kata atau frase yang diawali dengan huruf kapital.
  • Untuk menunjukkan kegagalan, fungsi pengujian juga harus dipanggil t.Kesalahan atau t.Gagal, dan untuk memberikan informasi debug tambahan tanpa menyebabkan kegagalan, t.Log dapat digunakan.
  • Untuk mengirimkan informasi debug yang tidak gagal, gunakan t.Log.
  • Tes disimpan dalam file dengan nama foo_test.go , Misalnya, math_test.go .

Tutup file setelah menyimpannya.

paket utama

impor (
'pengujian'
)

funcTestAdd ( T * pengujian. T ) {
hasil := Menambahkan ( 2 , 3 )
jika hasil != 5 {
T. Kesalahanf ( 'Tambahkan(2, 3) = %d; ingin 5' , hasil )
}
}

Itu Menambahkan() fungsi diuji oleh TestAdd() fungsi, yang didefinisikan dalam tes ini. Ini menggunakan angka 2 dan 3 untuk memanggil Tambah, dan kemudian mengonfirmasi bahwa hasilnya adalah 5. Pesan kesalahan dicetak jika hasilnya kurang dari 5 saat t.Kesalahan() dipanggil.

Terakhir, penting untuk diketahui bahwa Go memiliki alat pengujian bawaan yang disebut pergi tes. Alat ini menjalankan semua pengujian dalam proyek dan memberikan laporan hasilnya. Pergi tes harus diketik di terminal saat berada di direktori proyek untuk memulai tes. Hasilnya, semua pengujian dalam direktori tersebut akan dijalankan.

< kuat > pergi tes < tes - mengajukan - nama > _tes. pergi kuat >

Hasil Uji Unit

Keluarannya akan menunjukkan kepada Anda fungsi pengujian yang lulus, gagal, atau dilewati.

LULUS atau OK menunjukkan bahwa kode beroperasi sebagaimana dimaksud. Anda akan menerima GAGAL jika tes gagal.

Itu _test.go suffix adalah satu-satunya yang diperiksa oleh subperintah go test dalam file. Setelah itu, go test mencari file tersebut untuk fungsi khusus, seperti func TestXxx dan beberapa lainnya. Go test build dan panggil fungsi-fungsi ini dengan benar, jalankan, kumpulkan, dan laporkan hasilnya, dan terakhir bersihkan semuanya dalam paket utama sementara.

Langkah terakhir adalah mengintegrasikan pengujian Anda ke dalam alur kerja pengembangan Anda. Praktik terbaiknya adalah menjalankan pengujian setiap kali Anda memasukkan kode ke repositori. Integrasi pengujian Anda ke dalam alur kerja pengembangan Anda memastikan bahwa kode Anda terus diuji, dan setiap masalah diselesaikan sebelum diterapkan.

Kesimpulan

Menulis tes unit adalah komponen penting dari pengembangan perangkat lunak karena menjamin bahwa kode Anda dapat diskalakan, fungsional, dan efektif. Pustaka pengujian Go mudah dan mudah digunakan. Anda harus dapat membuat Golang tes unit kualitas tertinggi dengan mengikuti prosedur yang tercantum di atas. Ingatlah untuk mengintegrasikan pengujian Anda ke dalam alur kerja pengembangan untuk memastikan bahwa kode Anda terus diuji, dan setiap masalah diselesaikan sebelum diterapkan.