[Reclaim] Testing : Mock Up, Stubs

Fay Anyatasia
Dekowarehouse Project
2 min readMay 2, 2018

Halo, setelah menggunakan TDD selama PPL ini, ada baiknya jika testing yang dilakukan menggunakan Mock and Stubs.

Sebenarnya apakah itu mock?

Jika dicari di kamus bahasa inggris, salah satu makna dari mock adalah “made something as imitation”. Mocking biasa digunakan dalam unit testing. Sebuah object yang di test bisa saja memiliki dependency dengan object lain. Untuk mengisolasi behavior dari object yang sedang kita test, maka kita menggantikan object lain tersebut dengan mock yang mengimitasi behavior dari objek aslinya. Hal ini membantu jika object nyata sulit untuk dimasukkan kedalam unit testing.

Intinya, mocking adalah membuat object yang mengimitasi behavior dari objek aslinya.

Sedangkan apakah itu stubs?

Stubs juga digunakan dalam unit testing. Stubs adalah modul yang berperan sebagai pengganti sementara dari module yang dipanggil dan memberikan outpus yang sama seperti produk aslinya.

Sekilas, Mock dan Stubs ini mirip namun ternyata ia berbeda.

Stub adalah “minimal” objek yang disimulasikan. Stub hanya mengimplementasi behavior yang diperlukan agar object yang dibutuhkan untuk test dapat di test.

Sedangkan mock mirip dengan stub, namun test nya juga akan meng verifikasi object tersebut apakah object nya akan memanggil mock nya sesuai dengan yang diharapkan. Bagian dari test tersebut adalah meng verifikasi apakah mock digunakan dengan tepat.

Contohnya adalah, jika ingin mengetest proses read and write ke database.

Kita bisa mengstub database, hanya dengan mengimplementasikan simple in-memory struktur untuk menyimpan record. Objek yang di test akan dapat membaca dan menulis ke databse stub untuk mengetest hal tersebut.

Sedangkan, jika kita ingin mengetest apakah object tersebut benar-benar menulis data spesifik ke database, maka kita harus me-mock database tersebut. Test tersebut juga nantinya akan mengecek apa yang tertulis ke dalam mock database tersebut.

Lalu, agar klien mengerti apa yang kita akan buat, maka dibuatlah sebuah mock-up. Mock-up tersebut juga nantinya dapat di test usability nya dengan berbagai tools. Contoh beberapa tools nya dapat dilihat disini.

Implementasi pada projek

Pada react, mock di implementasikan menggunakan fungsi shallow seperti code dibawah ini :

it(‘should go to the previous slide’, () => { 
const wrapper = shallow(<Slider id=’1'/>);
wrapper.instance().previousSlide();
expect(wrapper.instance().state.slidecount).toEqual(3);
});

Reference :

--

--