Mockito Testing Android

silsly
2 min readApr 19, 2018

Unit Testing digunakan untuk menguji fungsionalitas suatu sistem. Kekurangan dari penggunaan Unit Testing ini adalah untuk menguji suatu method maka method yang lainnya harus dihilangkan terlebih dahulu. Namun kekurangan ini dapat dihindari dengan menggunakan tes penggantian (Test Doubles).

Test Doubles dapat diteruskan ke objek lainnya yang diuji. Tes ini dapat memvalidasi bahwa kelas dapat berjalan dengan benar. Contohnya, saat pengujian pada method A maka method B, C, dan D tidak akan terpengaruh. Test Doubles dapat diklasifikasikan seperti :

  • Dummy Object, hanya membuat dummy object tanpa menjalankan fungsional sistem. Contoh: Pembuatan dummy object hanya untuk mengisi parameter pada suatu method.
  • Fake Objects, menguji fungsional sistem namun dengan teknis yang disederhanakan. Contoh: Penggunaan database testing bukan database real.
  • Stub Class, implementasi sebagian dengan tujuan menggunakan turunan kelas rintisan ini selama pengujian.
  • Mock Object, implementasi dummy untuk setiap interface atau class untuk menentukan output dari method tertentu.

“Mock Object biasanya membutuhkan lebih sedikit kode untuk dikonfigurasi, karena itulah sebaiknya diimplementasikan”

Dasar Mockito

Mockito menyediakan beberapa method untuk membuat Mock Objects, yaitu :

  • Penggunaan “static mock() method”
  • Penggunaan “@Mock annotation”. Pada penggunaan anotasi @Mock anda harus menggunakan objek beranotasi (The MockitoRule), yang memungkinkan pemanggilan static metode MockitoAnnotations.initMocks (this) untuk mengisi bidang beranotasi. Atau bisa juga dgn menggunakan @RunWith (MockitoJUnitRunner.class) Penggunaan @Mock annotation and the MockitoRule ditunjukkan oleh contoh berikut.

Pengaturan Mockito Testing

  • Install Android support repository
  • Tambahkan pada gradle.app
defaultConfig { testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" }
-----------------------------------------------------------------
dependencies {
// unit testing dependencies
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.10.19'
// android testing dependencies
androidTestCompile 'com.android.support:support-annotations:24.2.0'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'}

--

--