Kode program : HTTP Test

Golang Web – HTTP Test

Golang sudah menyediakan package khusus untuk membuat unit test terhadap fitur Web yang kita buat. Semuanya ada di dalam package net/http/httptest https://pkg.go.dev/net/http/httptest

Dengan menggunakan package ini, kita bisa melakukan testing handler Web di Golang tanpa ahrus menajalankan aplikasi Web nya. Kita bisa fokus terhadap handler function yang ingin kita test.

httptest.NewRequest()

NewRequest(method, url, body) merupakan function yang digunakan untuk membuat http.Request. Kita bisa menentukan method, url dan body yang akan kita kirim sebagai simulasi unit test. Selain itu, kita juga bisa menambahkan informasi tambahan lainnya pada request yang ingin kita kirim, seperti header, cookie, dan lain-lain.

httptest.NewRecorder()

httptest.NewRecorder() merupakan function yang digunakan untuk membuat ResponseRecorder. ResponseRecorder merupakan struct bantuan untuk merekam HTTP response dari hasil testing yang kita lakukan.

Kode program : HTTP Test

package belajar_golang_web

import (
	"fmt"
	"io"
	"net/http"
	"net/http/httptest"
	"testing"
)

func HelloHandler(writer http.ResponseWriter, request *http.Request) {
	fmt.Fprint(writer, "Hello World")
}

func TestHttp(t *testing.T) {
	request := httptest.NewRequest(http.MethodGet, "http://localhost:8080/hello", nil)
	recorder := httptest.NewRecorder()

	HelloHandler(recorder, request)

	response := recorder.Result()
	body, _ := io.ReadAll(response.Body)

	fmt.Println(string(body))
}
Kode program : HTTP Test
Kode program : HTTP Test

Pada baris kode diatas, pertama kita membuat function HelloHandler() yang digunakan untuk menghanlde request dari client, kemudian pada baris ke 16 kita membuat request baru dan di baris ke 17 kita membuat recorder yang akan menampung hasil response dari handler kita. Selanjutnya kita hanya perlu menjalankan function nya dan menangkap hasil response nya. Terakhir kita konversi terlebih dahulu body nya ke string dan tampilkan ke layar terminal.

Dengan httptest kita tidak perlu menjalankan web server dan mengakses secara manual dari browser, kita hyanya perlu membuat unit test dan menjalan kan kode program kita di unit test tersebut.

Penutup

Pada artikel kali ini kita telah belajar tentang http test pada golang web. Dan pada artikel selanjutnya saya akan membahas query parameter pada golang web.

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