Pengujian lokal berjalan langsung di stasiun kerja Anda sendiri, bukan di perangkat Android atau emulator. Dengan demikian, ia menggunakan Java Virtual Machine (JVM) lokal Anda, bukan perangkat Android untuk menjalankan pengujian. Pengujian lokal memungkinkan Anda mengevaluasi logika aplikasi dengan lebih cepat. Namun, tidak dapat berinteraksi dengan kerangka kerja Android membuat batasan dalam jenis pengujian yang dapat Anda jalankan.
Tes unit memverifikasi perilaku bagian kecil kode, unit yang diuji . Ia melakukannya dengan mengeksekusi kode itu dan memeriksa hasilnya.
Pengujian unit biasanya sederhana tetapi penyiapannya dapat menjadi masalah ketika unit yang diuji tidak dirancang dengan mempertimbangkan kemampuan pengujian:
- Kode yang ingin Anda verifikasi harus dapat diakses dari pengujian. Misalnya, Anda tidak dapat menguji metode pribadi secara langsung. Sebagai gantinya, Anda menguji kelas menggunakan API publiknya.
- Untuk menjalankan pengujian unit secara terpisah , dependensi unit yang diuji harus diganti dengan komponen yang Anda kontrol, seperti palsu atau uji ganda lainnya . Ini sangat bermasalah jika kode Anda bergantung pada kerangka kerja Android.
Untuk mempelajari tentang strategi umum pengujian unit di Android, baca Apa yang akan diuji.
Lokasi tes lokal
Secara default, file sumber untuk pengujian unit lokal ditempatkan di module-name/src/test/. Direktori ini sudah ada saat Anda membuat proyek baru menggunakan Android Studio.
Menambahkan dependensi pengujian
Anda juga perlu mengonfigurasi dependensi pengujian untuk proyek Anda untuk menggunakan API standar yang disediakan oleh kerangka kerja pengujian JUnit .
Untuk melakukannya, buka build.gradlefile modul aplikasi Anda dan tentukan pustaka berikut sebagai dependensi. Gunakan testImplementationfungsi untuk menunjukkan bahwa mereka berlaku untuk set sumber pengujian lokal, dan bukan aplikasi:
dependencies {
// Required -- JUnit 4 framework
testImplementation "junit:junit:$jUnitVersion"
// Optional -- Robolectric environment
testImplementation "androidx.test:core:$androidXTestVersion"
// Optional -- Mockito framework
testImplementation "org.mockito:mockito-core:$mockitoVersion"
// Optional -- mockito-kotlin
testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion"
// Optional -- Mockk framework
testImplementation "io.mockk:mockk:$mockkVersion"
}
Buat kelas pengujian unit lokal
Anda menulis kelas pengujian unit lokal Anda sebagai kelas pengujian JUnit 4 .
Untuk melakukannya, buat kelas yang berisi satu atau lebih metode pengujian, biasanya dalam format module-name/src/test/. Metode pengujian dimulai dengan @Testanotasi dan berisi kode untuk menjalankan dan memverifikasi satu aspek komponen yang ingin Anda uji.
Contoh berikut menunjukkan cara mengimplementasikan kelas pengujian unit lokal. Metode pengujian emailValidator_correctEmailSimple_returnsTrue()mencoba memverifikasi isValidEmail(), yang merupakan metode dalam aplikasi. Fungsi tes akan mengembalikan true jika isValidEmail()juga mengembalikan true.
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Test
class EmailValidatorTest {
@Test fun emailValidator_CorrectEmailSimple_ReturnsTrue() {
assertTrue(EmailValidator.isValidEmail("name@email.com"))
}
}
Sumber
https://developer.android.com/training/testing/local-tests#include-framework-dependencies