Software Testing: Mock

M.Fakhruddin Hafizh
AdHub Team
Published in
1 min readApr 29, 2019

Halo Sobat AdHub!! Kali ini kita akan membahas salah satu jenis testing lainnya dalam pengembangan software selain Stress Testing dan Penetration Testing yang pernah dibahas sebelumnya. Jenis Testing kali ini dilakukan secara terisolasi, yaitu tidak boleh ada interaksi langsung dengan kelas lain yang menjadi collaborator class tersebut.

Penjelasan Mocking Test

Seperti yang sudah dijelaskan sebelumnya, mocking test ilakukan secara terisolasi, yaitu tidak boleh ada interaksi langsung dengan kelas lain yang menjadi collaborator class tersebut. Oleh karena itu, kita akan membuat sebuah Mock Object. Mock object merupakan objek yang menggantikan data/objek sebenarnya.

Implementasi Moncking Test

Untuk membuat mock test pada python kita dapat menggunakan library unittest.mock. Salah satu caranya adalah dengan melakukan import patch dari library tersebut.

from unittest.mock import patch

Selanjutnya untuk sementara sebagai contoh saya akan menggunakan salah satu mock testing yang diimplementasikan oleh rekan saya

# pada test.py
def fake_campaign_id_response(self, *args):
return '65903058675'
def fake_ad_group_id_response(self, *args):
return '0692846817'
def fake_ad_id_response(self, *args):
return '84064798215'

Selanjutnya kita akan menggunakan patch agar ketika fungsi dipanggil maka fungsi yang akan terpanggil sebetulnya adalah fungsi fake_ad_group_response yang telah kita buat diawal.

@patch('google_api.google.GoogleApi.add_campaign', fake_campaign_id_response)
def test_set_campaign_id(self):
response = google.GoogleApi.add_campaign({})
self.iklan.set_campaign_id(response)
self.assertEqual(self.iklan.campaign_id, response)
@patch('google_api.google.GoogleApi.add_ad_group', fake_ad_group_id_response)
def test_set_ad_group_id(self):
response = google.GoogleApi.add_ad_group({})
self.iklan.set_ad_group_id(response)
self.assertEqual(self.iklan.ad_group_id, response)
@patch('google_api.google.GoogleApi.add_ad', fake_ad_id_response)
def test_set_ad_id(self):
response = google.GoogleApi.add_ad({})
self.iklan.set_google_ad_id(response)
self.assertEqual(self.iklan.google_ad_id, response)

Sehingga ketika fungsi pada google_api.google.GoogleApi.add_ad_group maka tes tersebut justru akan memanggil fake_ad_group_response()

--

--