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 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.
Men-debug database Anda
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.