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:
- DAO'nuzdan sorguları hızlı bir şekilde çalıştırmak için kanal boşluğu işlemlerini kullanın sınıfları hakkında daha fazla bilgi edinin.
- Uygulamanız çalışırken Veritabanı İnceleyici'de canlı güncellemeleri anında görün ve verilerde değişiklikler yapar.
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
- Veritabanı İnceleyici (11 Hafta Android)