Mock and Stub
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’.