Unit Testing - RealYukiSan/explore-go GitHub Wiki

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.