Testowanie i debugowanie bazy danych

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