-
Notifications
You must be signed in to change notification settings - Fork 0
Unit Testing
Yuki San edited this page Mar 18, 2023
·
1 revision
di golang juga ada yang namanya unit testing, dan memiliki beberapa persyaratan untuk mengimplementasikannya:
- satu buah file utama dan satu buah file test dengan prefix name filenya:
file_utama_test.go
- prefix TestNamaFunction untuk implementasi testing
- prefix BenchmarNamaFunction untuk implementasi benchmarking
- pastikan kedua file tersebut dalam satu package yang sama
- pastikan run command go testnya di current work direktori yang memiliki file
*_test.go
run unit test dengan command berikut:
# -v for --verbose output and -bench for enable benchmark
go test nama_file_utama.go nama_file_test.go -v -bench=.
nnti akan muncul output seperti berikut:
=== RUN TestHitungVolume
math_test.go:13: Volume : 64.00
--- PASS: TestHitungVolume (0.00s)
=== RUN TestHitungLuas
math_test.go:27: Luas : 96.00
--- PASS: TestHitungLuas (0.00s)
=== RUN TestHitungKeliling
math_test.go:35: Keliling : 48.00
--- PASS: TestHitungKeliling (0.00s)
goos: linux
goarch: amd64
cpu: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
BenchmarkHitungLuas
BenchmarkHitungLuas-6 71489060 15.84 ns/op
PASS
ok command-line-arguments 1.171s
Arti dari 71489060 15.84 ns/op adalah, fungsi di atas di-test sebanyak 71 juta kali, hasilnya membutuhkan waktu rata-rata 15.84 nano detik untuk run satu fungsi.
note: untuk parameter nama_file sebenernya opsional jika kamu ingin menjalankan seluruh unit test dalam direktori tersebut, tidak usah menambahkan parameter itu.
untuk contoh pengimplementasiannya bisa dilihat pada commit ini.