Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Menguji dan men-debug database

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.