Istotne jest zweryfikowanie stabilności bazy danych aplikacji oraz podczas tworzenia baz danych za pomocą Biblioteka trwałości sal. Ta strona o tym, jak przetestować bazę danych i wykonać czynności debugowania, aby ułatwić zalicza testy.
Testowanie bazy danych
Są 2 sposoby testowania bazy danych:
- na urządzeniu z Androidem,
- Na komputerze służącym do programowania hosta (niezalecane).
Informacje o testowaniu specyficznym dla migracji bazy danych znajdziesz w artykule Testowanie migracji.
Testowanie na urządzeniu z Androidem
Zalecanym sposobem testowania implementacji bazy danych jest napisanie Test JUnit działający na urządzeniu z Androidem. Ponieważ te testy nie wymagają podczas tworzenia działania, powinny one być wykonywane szybciej niż testy interfejsu.
Podczas konfigurowania testów należy utworzyć wersję pamięci w bazie danych, aby testy były bardziej hermetyczne, jak w tym przykładzie:
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)); } }
Testowanie na hoście
Sala korzysta z biblioteki pomocy SQLite, która zawiera pasujące do nich interfejsy w klasach Androida Framework. Opcja ta umożliwia przekazywanie na potrzeby testowania zapytań do bazy danych.
Testowanie migracji
Sala obsługuje przyrostową bazę danych migracji do zachowania istniejących danych aplikacji w sytuacjach, gdy aktualizacja aplikacji zmienia schemat bazy danych. Jednak nieprawidłowo zdefiniowana migracja może spowodować awarię aplikacji. Marka upewnij się, że baza danych sal została przetestowana,
Debugowanie bazy danych
Istnieje kilka narzędzi i procesów, których możesz używać do debugowania bazy danych.
Użyj inspektora baz danych
Inspektor baz danych w Android Studio 4.1 i nowszych umożliwia sprawdzanie i modyfikować jej bazy danych, gdy aplikacja jest uruchomiona. Baza danych Inspektor jest zgodny z wersją SQLite dołączaną do Androida i obejmuje specjalne funkcje do wykorzystania w Pokoju:
- Korzystanie z działań rynkowych do szybkiego uruchamiania zapytań z poziomu DAO zajęcia.
- Natychmiast wyświetlaj aktualizacje na żywo w inspektorze baz danych po uruchomieniu aplikacji wprowadza zmiany w danych.
Aby dowiedzieć się więcej o Inspektorze baz danych, przeczytaj artykuł Debuguj bazę danych za pomocą z inspektorem baz danych.
Zrzut danych z wiersza poleceń
Pakiet Android SDK zawiera narzędzie bazy danych sqlite3
służące do sprawdzania
baz danych. Zawiera polecenia takie jak .dump
do drukowania zawartości pliku
i .schema
, aby wydrukować instrukcję SQL CREATE
dla istniejącej tabeli.
Możesz także wykonać polecenia SQLite z poziomu wiersza poleceń, jak pokazano na ten fragment:
adb -s emulator-5554 shell sqlite3 /data/data/your-app-package/databases/rssitems.db
Więcej informacji znajdziesz w wierszu poleceń sqlite3
dokumentacji, która jest dostępna na
SQLite.
Dodatkowe materiały
Więcej informacji o testowaniu i debugowaniu bazy danych sal znajdziesz w tych dodatkowe materiały:
Posty na blogu
Filmy
- Inspektor baz danych (11 tygodni na urządzeniu z Androidem).