בדיקה וניפוי באגים במסד הנתונים

חשוב לאמת את היציבות של מסד הנתונים של האפליקציה ושל המשתמשים במהלך יצירת מסדי נתונים באמצעות ספרייה לשמירת המיקום של החדרים. הדף הזה מסביר איך לבדוק את מסד הנתונים ולבצע שלבי ניפוי באגים כדי עוברים את הבדיקות בהצלחה.

בדיקת מסד הנתונים

יש שתי דרכים לבדוק את מסד הנתונים:

  • במכשיר Android.
  • במכונת הפיתוח המארחת (לא מומלץ).

למידע על בדיקה ספציפית להעברות של מסדי נתונים, ראה בדיקת העברות.

בדיקה במכשיר Android

הגישה המומלצת לבדיקת ההטמעה של מסד הנתונים היא בדיקת JUnit שרצה במכשיר Android. מפני שהבדיקות האלה לא מחייבות כשיוצרים פעילות, הביצוע שלה אמור להיות מהיר יותר מבדיקות ממשק המשתמש.

כשמגדירים את הבדיקות, צריך ליצור גרסה בזיכרון של כדי שהבדיקות יהיו הרמטיות יותר, כמו בדוגמה הבאה:

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

בדיקה במחשב המארח שלך

Room משתמש בספריית התמיכה של SQLite, שמספקת ממשקים שתואמים במחלקות של Android Framework. התמיכה הזו מאפשרת להעביר של ספריית התמיכה כדי לבדוק את השאילתות של מסדי הנתונים.

בדיקת ההעברות

Room תומך במסד נתונים מצטבר העברות כדי לשמור נתוני אפליקציה קיימים במצבים שבהם עדכון האפליקציה משנה את הסכימה של מסד הנתונים. עם זאת, העברה שמוגדרת בצורה שגויה עלולה לגרום לקריסת האפליקציה. יצרן חשוב לבדוק את מסד הנתונים של Room. העברות.

ניפוי באגים במסד הנתונים

יש מספר כלים ותהליכים שבהם תוכלו להשתמש כדי לנפות באגים במסד הנתונים.

שימוש בכלי לבדיקת מסדי נתונים

ב-Android Studio מגרסה 4.1 ואילך, הכלי לבדיקת מסדי נתונים מאפשר לך לבדוק לשלוח שאילתות ולשנות את מסדי הנתונים של האפליקציה בזמן שהיא פועלת. מסד הנתונים כלי הבדיקה תואם לגרסת SQLite שכלולה בחבילה עם Android והוא כולל תכונות מיוחדות לשימוש עם 'חדר':

  • אפשר להשתמש בפעולות gutter כדי להריץ במהירות שאילתות מDAO סיווגים.
  • רואים עדכונים בזמן אמת באופן מיידי בכלי לבדיקת מסד הנתונים, כשהאפליקציה פועלת מבצע שינויים בנתונים.

למידע נוסף על הכלי לבדיקת מסדי נתונים, אפשר לקרוא את המאמר ניפוי באגים במסד הנתונים באמצעות הכלי לבדיקת מסדי נתונים

מחיקת נתונים משורת הפקודה

ה-Android SDK כולל כלי מסד נתונים sqlite3 שמשמש לבדיקת האפליקציה מסדי נתונים. הוא כולל פקודות כמו .dump להדפסת התוכן של ו-.schema כדי להדפיס את ההצהרה SQL CREATE עבור טבלה קיימת.

תוכלו להריץ פקודות SQLite משורת הפקודה, כפי שמוצג קטע הקוד הבא:

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

מידע נוסף זמין בשורת הפקודה sqlite3 תיעוד, זמין באתר SQLite.

מקורות מידע נוספים

במאמרים הבאים אפשר לקבל מידע נוסף על בדיקה וניפוי באגים במסד הנתונים של 'חדרים'. משאבים נוספים:

פוסטים בבלוגים

סרטונים