Method di Package Testing

Package testing golang memiliki beberapa method bawaan untuk keperluan testing seperti t.Fail, t.FailNow, t.Error & t.Fatal, t.Skip. Penjelasan masing-masing method dirinci sebagai berikut:

  • t.Fail() digunakan untuk menggagalkan unit test, namun tetap melanjutkan eksekusi unit test. Unit test tersebut dianggap gagal.

func (c *common) Fail() {
	if c.parent != nil {
		c.parent.Fail()
	}
	c.mu.Lock()
	defer c.mu.Unlock()
	// c.done needs to be locked to synchronize checks to c.done in parent tests.
	if c.done {
		panic("Fail in goroutine after " + c.name + " has completed")
	}
	c.failed = true
}
  • t.FailNow() digunakan untuk menggagalkan unit test saat ini juga, tanpa melanjutkan eksekusi unit test selanjutnya.

func (c *common) FailNow() {
	c.checkFuzzFn("FailNow")
	c.Fail()

	// ...
	c.mu.Lock()
	c.finished = true
	c.mu.Unlock()
	runtime.Goexit()
}
  • t.Error() digunakan untuk menampilkan error dengan log dan memanggil function Fail(), sehingga eksekusi unit test akan tetap berjalan sampai selesai meskipun unit test saat ini telah gagal.

  • t.Fatal() mirip dengan Error() namun diakhiri dengan FailNow(), sehingga mengakibatkan eksekusi unit test berhenti.

  • t.Skip() digunakan untuk skip suatu unit test dan menampilkan suatu argument dengan log.

  • t.SkipNow digunakan untuk skip suatu unit test dan exit.

Contoh code

Berikut adalah code function SayHi pada package main yang ingin dibuat unit test-nya.

Implementasi method Error

Berikut contoh code unit testing yang menerapkan method error.

Implementasi method Fatal

Berikut contoh code unit testing yang menerapkan method fatal.

Implementasi method Skip

Berikut contoh code unit testing yang menerapkan method skip.

Last updated