Function unit test hello world

Golang – Membuat unit test

Sebelumnya kita telah belajar sedikit tentang package testing yang digunakan untuk membuat unit test, nah pada artikel kali ini kita akan mencoba membuat unit test sederhana, tetapi sebelum membuat unit test kita akan membuat function sederhana terlebih dahulu dan nanti kita akan membuat unit test untuk function tersebut.

Kode program function hello world

Pada percobaan kali ini kita cukup membuat function HelloWorld sederhanya saja. Nah sekarang buatlah project baru menggunakan go module dengan nama belajar-golang-unit-test setelah itu buat package baru dengan nama helper dan pada package tersebut buat juga file dengan nama hello_world.go dan isikan baris kode berikut

package helper

func HelloWorld(name string) string {
	return "Hello " + name
}

Function ini lah yang nantinya akan kita buatkan unit test.

Aturan file test

Sebelum kita membuat unit test, ada beberapa aturan yang harus kita perhatikan, yang pertama adalah aturan membuat file unit test. Golang memiliki aturan cara membuat file khusus untuk unit test, jadi kita tidak bisa sembarangan membuat unit test.

Untuk membuat unit test kita harus membuat file unit test, kita harus menggunakan akhiran _test, untuk awalan nya bebas apapun itu tetapi akhiran nya wajib menggunakan _test. Jadi misalnya jika sebelumnya kita telah membuat file hello_world.go, artinya untuk membuat unit test nya , kita harus membuat file hello_world_test.go.

Membuat file unit test

Setelah mengetahui aturan untuk membuat file unit test, sekarang buatlah file abru pada package helper sebelumnya dengan nama hello_world_test.go.

Aturan function unit test

Selain aturan nama file ada juga aturan untuk function nya, di golang sudah diatur untuk nama function unit test, jadi kita juga tidak bisa sembarangan dalam membuat nama function nya. Nama function untuk membuat unit test harus diawali dengan nama Test, misal jika kita ingin mengetest function HelloWorld, maka kita akan membuat function unit test dengan nama TestHelloWorld, selanjutnya function nya juga harus memiliki parameter (t *testing.T) dan tidak mengembalikan return value.

Kode program hello world unit test

Setelah membuat file unit test, selanjutnya kita akan membuat function unit test untuk mengetest kode program HelloWorld sebelumnya.

package helper

import "testing"

func TestHelloWorld(t *testing.T) {
	result := HelloWorld("Rendy")

	if result != "Hello Rendy" {
		// error
		panic("Result is not 'Hello Rendy'")
	}
}
Function unit test hello world
Function unit test hello world

Pada kode diatas kita membuat function unit test dengan nama TestHelloWorld dan simple nya function tersebut akan kita buat untuk melakukan test pada kode program kita, contohnya pada function di atas kita akan menjalankan function HelloWorld dengan parameter "Rendy" kemudian hasilnya kita simpan pada variable result. Kemudian kita juga akan melakukan pengecekan apakah hasil di result sama dengan "Hello Rendy" jika tidak maka kita akan membuat test nya gagal dengan panic.

Menjalankan unit test

Untuk menjalankan unit test kita bisa menggunakan command go test, dan jika kita ingin melihat function apa saja yang dijalankan maka kita bisa menggunakan command go test -v, atau jika kita ingin memilih function mana yang ingin di running maka kita bisa menggunakan command go test -v -run TestNamaFunction.

Pass output unit test TestHelloWorld
Pass output unit test TestHelloWorld

Nah bagaimana jika kita ingin me running semua unit test dari direktori root module nya maka kita bisa menggunakan command go test ./...

Menjalankan unit test dari root module
Menjalankan unit test dari root module

Penutup

Pada artikel kali ini kita telah belajar tentang cara membuat unit test pada bahasa pemrogaman go. Dan pada artikel selanjutnya saya akan membahas cara menggagalkan test pada bahasa pemrogaman go.

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar

About Me

About Me

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam.

Social Profiles

Facebook