Saat membuat database menggunakan library persistensi Room, penting untuk memastikan stabilitas database aplikasi serta data pengguna Anda. Halaman ini membahas cara menguji database dan melakukan langkah-langkah proses debug untuk membantu kelulusan pengujian Anda.
Menguji database Anda
Ada 2 cara untuk menguji database:
- Di perangkat Android.
- Di mesin pengembangan host (tidak direkomendasikan).
Untuk mengetahui informasi tentang pengujian yang dikhususkan bagi migrasi database, lihat Menguji Migrasi.
Melakukan pengujian di perangkat Android
Metode yang direkomendasikan untuk menguji penerapan database adalah menulis pengujian JUnit yang berjalan di perangkat Android. Pengujian ini tidak memerlukan pembuatan aktivitas sehingga akan lebih cepat dijalankan daripada pengujian UI.
Saat menyiapkan pengujian, Anda harus membuat versi database dalam memori agar pengujian menjadi lebih terisolasi, seperti dalam contoh berikut:
Kotlin
@RunWith(AndroidJUnit4::class) class SimpleEntityReadWriteTest { private lateinit var userDao: UserDao private lateinit var db: TestDatabase @Before fun createDb() { val context = ApplicationProvider.getApplicationContext<Context>() db = Room.inMemoryDatabaseBuilder( context, TestDatabase::class.java).build() userDao = db.getUserDao() } @After @Throws(IOException::class) fun closeDb() { db.close() } @Test @Throws(Exception::class) fun writeUserAndReadInList() { val user: User = TestUtil.createUser(3).apply { setName("george") } userDao.insert(user) val byName = userDao.findUsersByName("george") assertThat(byName.get(0), equalTo(user)) } }
Java
@RunWith(AndroidJUnit4.class) public class SimpleEntityReadWriteTest { private UserDao userDao; private TestDatabase db; @Before public void createDb() { Context context = ApplicationProvider.getApplicationContext(); db = Room.inMemoryDatabaseBuilder(context, TestDatabase.class).build(); userDao = db.getUserDao(); } @After public void closeDb() throws IOException { db.close(); } @Test public void writeUserAndReadInList() throws Exception { User user = TestUtil.createUser(3); user.setName("george"); userDao.insert(user); List<User> byName = userDao.findUsersByName("george"); assertThat(byName.get(0), equalTo(user)); } }
Melakukan pengujian di mesin host
Room menggunakan SQLite Support Library, yang menyediakan antarmuka seperti dalam class Framework Android. Dukungan ini memungkinkan Anda menggunakan penerapan kustom support library untuk menguji kueri database.
Menguji migrasi
Room mendukung migrasi database inkremental untuk mempertahankan data aplikasi yang ada dalam situasi ketika update aplikasi mengubah skema database. Namun, migrasi yang tidak ditetapkan dengan benar dapat menyebabkan aplikasi Anda error. Pastikan Anda menguji migrasi database Room.
Men-debug database
Ada beberapa alat dan proses yang dapat digunakan untuk men-debug database.
Menggunakan Database Inspector
Pada Android Studio 4.1 dan yang lebih baru, Database Inspector memungkinkan Anda memeriksa, menjalankan kueri, dan mengubah database aplikasi saat aplikasi tersebut sedang berjalan. Database Inspector kompatibel dengan versi SQLite yang dipaketkan dengan Android dan menyertakan fitur khusus untuk digunakan dengan Room:
- Gunakan tindakan gutter untuk menjalankan kueri dari class DAO dengan cepat.
- Anda dapat seketika melihat info terbaru langsung di Database Inspector saat aplikasi yang sedang berjalan membuat perubahan pada data.
Untuk mempelajari Database Inspector lebih lanjut, lihat Men-debug database dengan Database Inspector.
Membuang data dari command line
SDK Android menyertakan alat database sqlite3
untuk memeriksa database aplikasi Anda. Hal ini mencakup perintah seperti .dump
untuk mencetak isi tabel, dan .schema
untuk mencetak pernyataan SQL CREATE
untuk tabel yang sudah ada.
Anda juga dapat menjalankan perintah SQLite dari command line, seperti yang ditunjukkan dalam cuplikan berikut:
adb -s emulator-5554 shell sqlite3 /data/data/your-app-package/databases/rssitems.db
Untuk informasi selengkapnya, lihat dokumentasi command line
sqlite3
, yang tersedia di
situs SQLite.
Referensi lainnya
Untuk mempelajari lebih lanjut cara menguji dan men-debug database Room, lihat referensi tambahan berikut:
Postingan blog
Video
- Database Inspector (11 Minggu Android)