Espresso Android Testing

silsly
2 min readApr 19, 2018

Espresso is a testing framework for Android to make it easy to write reliable user interface tests — unkown

Dasar Espresso

onView(ViewMatcher)       // Finds the view          
.perform(ViewAction) // Performs an action on the view
.check(ViewAssertion); // Validates a assertion

Pengaturan Espresso

  • Atur Android Support Repository, caranya Tools>Android>SDK Manager>SDK Tools>Support Repository. Kemudian check semua daftar repository dan apply. Apply dan Ok.
  • Konfigurasi JUnit sebagai framework pengujian (Espresso dan UI Automator). JUnit adalah framework pengujian unit yang paling populer dan banyak digunakan untuk Java. Jika Anda belum memiliki JUnit, dapatkan di http://junit.org/junit4/. (Disarankan menggunakan JUnit versi 4.12).
  • Kemudian pada gradle.app tambahkan dependencies :
dependencies
androidTestCompile (‘com.android.support.test.espresso:espresso-core:2.2.2’, { exclude group: ‘com.android.support’, module: ‘support-annotations’

testCompile 'junit:junit:4.12'

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}
  • Tambahkan JUNIT_HOME dengan cara My Computer>Properties> Advances system settings>Advanced>Environtment variables>System variables>New>…
%CLASSPATH%;%JUNIT_HOME%\junit-4.12.jar;.;
  • Nonaktifkan Animasi dikarenakan animasi bersifat berat dan memperlambat kinerja sistem sehingga memungkinkan terjadinya gagal dalam pengujian. Cara menonaktifkannya yaitu ubah pengaturan pada smartphone. Settings>Developer options>Drawing>Non aktifkan Window animation scale, Transition animation scale, dan Animator duration scale. Ok.

Contoh Espresso Testing

  • Buka projek Android Studio dengan tipe Project
  • Cari direktori src/androidTest/java/com.example.package dan buka class ExampleInstrumentedTest.
  • Ubah class ExampleInstrumentedTest menjadi :
import android.support.test.InstrumentationRegistry
import android.support.test.espresso.Espresso.onView
import android.support.test.espresso.action.ViewActions.click
import android.support.test.espresso.matcher.ViewMatchers.withId
import android.support.test.rule.ActivityTestRule
import android.support.test.runner.AndroidJUnit4
import com.app.macbook.trykotlin.activity.BangunDatarActivity

import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*
import com.app.macbook.trykotlin.activity.MainActivity
import org.junit.Rule
import android.support.test.espresso.matcher.ViewMatchers.isDisplayed
import android.support.test.espresso.Espresso.onView
import android.support.test.espresso.assertion.ViewAssertions.matches


/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ActivityInputOutputTest {

@Rule
var mActivityRule = ActivityTestRule(
BangunDatarActivity::class.java)

@Test
fun activityLaunch() {
onView(withId(R.id.btn_hitung)).perform(click())
onView(withId(R.id.tv_total)).check(matches(isDisplayed()))
}
}

@RunWith : inisialisasi kelas pengujian

@Rule : deklar semua function yang digunakan

onView : deklar semua variabel yang digunakan

  • Klik kanan pada kelas ExampleInstrumentedTest kemudian ‘Run ExampleInstrumentedTest’. Hasil pengujian akan ditampilkan di logcat. Tentunya hasil pengujian ini lebih detail jika dibandingkan dengan pengujian manual. Selesai selamat mencoba.

--

--