Mock and Stub

Muhammad At Thoriq
PPLSalemba
Published in
2 min readMay 19, 2019

Pembuatan test untuk suatu kode sangat diperlukan dalam mengembangkan sebuah perangkat lunak. Hal tersebut untuk memudahkan dan mempercepat proses kerja developer dalam mengembangkan suatu fitur. Namun, pada prosesnya, tidak semua fungsi atau kelas dapat dites dengan mudah. Misalnya, untuk fungsi yang membutuhkan akses ke database, tes sulit dilakukan apabila setiap kali tes harus mengakses ke database. Untuk memudahkan proses testing seperti ini, dibutuhkan sebuah objek yang meniru production object tersebut yang disebut Test Double. Terdapat beberapa jenis Test Double, tetapi pada tulisan ini akan dijelaskan 2 jenis, yaitu Mock dan Stub.

Mock

Mocking merupakan suatu teknik yang mengisolasi suatu subyek tes, dalam hal ini fungsi atau kelas, dengan mengganti dependencies/production objek lain yang terkait dengan subyek tes dengan objek yang dapat dikontrol. (Harlon R, 2018). Misalnya, apabila kita ingin melakukan tes terhadap fungsi yang dapat mengirimkan email. Permasalahan pada fungsi ini adalah, kita tidak dapat memastikan apakah email tersebut benar-benar terkirim dan diterima oleh penerimanya. Namun, kita dapat melakukan tes terhadap fungsi tersebut dengan mengisolasinya dan hanya memastikan bahwa fungsi tersebut berjalan dengan sesuai.

Stub

Test stub dibuat oleh developer sebagai pengganti kode yang lain ketika melakukan tes suatu fungsi atau kelas. Ada beberapa contoh stub untuk membantu kita memahami kegunaan stub.

Data

Salah satu contoh stub adalah data access yang belum didevelop atau sulit diakses. Value dari stub tersebut berupa hardcode data yang formatnya sesuai atau mirip dengan value asli yang ingin diakses.

User Interface

Contohnya adalah apabila kita ingin melakukan tes fungsi redirect yang kita buat, kita ingin mencoba melakukan tes redirect halaman ke suatu halaman stub yang berisi, misalnya, ‘hello world’.

--

--