Veritabanınızı test etme ve hata ayıklama

Uygulamanızın veritabanının kararlılığını ve kullanıcılarınızın veri tabanları oluştururken Oda kalıcılığı kitaplığı. Bu sayfa veri tabanınızı test etmeyi ve en iyi uygulamalara yardımcı olacak hata ayıklama adımlarını başarılı olup olmadığını öğrenin.

Veritabanınızı test etme

Veritabanınızı iki şekilde test edebilirsiniz:

  • Android cihazda.
  • Ana makine geliştirme makinenizde (önerilmez).

Veritabanı taşıma işlemlerine özel testler hakkında bilgi edinmek için Taşımaları Test Etme.

Android cihazda test etme

Veritabanı uygulamanızı test etmek için önerilen yaklaşım, Android cihazda çalıştırılan JUnit testi. Çünkü bu testler bu işlemlerin kullanıcı arayüzü testlerinizden daha hızlı yürütülmesi gerekir.

Testlerinizi ayarlarken uygulamanızın bellek içi sürümünü oluşturmanız gerekir. veritabanını kullanarak testlerinizi daha hermetik hale getirebilirsiniz:

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));
    }
}

Ana makinenizde test edin

Oda, bu sinyallerle eşleşen arayüzler sunan SQLite Destek Kitaplığı'nı kullanır ele alacağız. Bu destek, müşterilerinize özel destek kitaplığı uygulamalarını inceleyerek veritabanı sorgularınızı test edebilirsiniz.

Taşıma işlemlerinizi test etme

Oda, ek veritabanını destekler yeni verileri Uygulama güncellemesinin veritabanı şemasını değiştirdiği durumlarda mevcut uygulama verileri. Ancak yanlış tanımlanmış bir taşıma işlemi, uygulamanızın kilitlenmesine neden olabilir. Marka Oda veritabanınızı test ettiğinizden emin olun. taşıma işlemleri.

Veritabanınızda hata ayıklama

Veritabanınızdaki hataları ayıklamak için kullanabileceğiniz çeşitli araç ve işlemler bulunur.

Veritabanı Denetleyicisi'ni kullanma

Android Studio 4.1 ve sonraki sürümlerde, Veritabanı Denetleyicisi ile sorgulayabilir ve uygulamanızın veritabanlarında değişiklik yapabilir. Veritabanı Denetleyici, Android ile birlikte sunulan SQLite sürümüyle uyumludur Oda:

Veritabanı Denetleyicisi hakkında daha fazla bilgi için Veritabanı Denetleyicisi.

Komut satırından veri dökümü

Android SDK, uygulamanızın verilerini inceleyebilmeniz için bir sqlite3 veritabanı aracı içerir. veri tabanları. Bir dosyanın içeriğini yazdırmak için .dump gibi komutlar içerir tablosunu ve SQL CREATE ifadesini mevcut bir tablo için yazdırmak üzere .schema.

Ayrıca, aşağıdaki gösterildiği gibi komut satırından SQLite komutlarını çalıştırabilirsiniz: aşağıdaki snippet:

adb -s emulator-5554 shell
sqlite3 /data/data/your-app-package/databases/rssitems.db

Daha fazla bilgi için sqlite3 komut satırına bakın belgelerinin SQLite web sitesi.

Ek kaynaklar

Oda veritabanınızı test etme ve hata ayıklama hakkında daha fazla bilgi edinmek için aşağıdaki konulara bakın ek kaynaklar:

Blog yayınları

Videolar