من المهم التأكّد من ثبات قاعدة بيانات تطبيقك واستقرار عمل المستخدمين البيانات عند إنشاء قواعد البيانات باستخدام مكتبة العناصر الثابتة للغرفة. هذه الصفحة كيفية اختبار قاعدة البيانات وإجراء خطوات تصحيح الأخطاء لمساعدة اجتياز الاختبارات.
اختبار قاعدة البيانات
هناك طريقتان لاختبار قاعدة البيانات:
- على جهاز 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)); } }
اختبار على الجهاز المضيف
تستخدم الغرفة مكتبة دعم SQLite، والتي توفر واجهات تتوافق مع تلك في فئات إطار عمل Android. يسمح لك هذا الدعم باجتياز وتطبيقات مكتبة الدعم لاختبار استعلامات قاعدة البيانات.
اختبار عمليات نقل البيانات
تتوافق الغرفة مع قاعدة بيانات تزايدية لنقل البيانات للاحتفاظ بيانات التطبيق الحالية في الحالات التي يغيّر فيها تحديث التطبيق مخطط قاعدة البيانات. ومع ذلك، يمكن أن تؤدي عملية نقل البيانات المحدَّدة بشكل غير صحيح إلى تعطُّل تطبيقك. الماركة من اختبار قاعدة بيانات الغرفة .
تصحيح أخطاء قاعدة البيانات
هناك العديد من الأدوات والعمليات التي يمكنك استخدامها لتصحيح أخطاء قاعدة البيانات.
استخدام عارض قاعدة البيانات
وفي Android Studio 4.1 والإصدارات الأحدث، يسمح لك Database Inspector (أداة فحص قاعدة البيانات) بفحص في قواعد بيانات التطبيق وتعديلها أثناء تشغيله. قاعدة البيانات يتوافق Inspector مع إصدار SQLite المضمّن مع Android. وتشمل ميزات خاصة لاستخدامها مع الغرفة:
- استخدام إجراءات هامش التوثيق لتشغيل طلبات البحث بسرعة من DAO الصفوف.
- الاطّلاع على التحديثات المباشرة فورًا في Database Inspector (أداة فحص قاعدة البيانات) عند تشغيل تطبيقك تُجري تغييرات على البيانات.
لمعرفة المزيد حول عارض قاعدة البيانات، راجع تصحيح أخطاء قاعدة البيانات باستخدام أداة فحص قاعدة البيانات.
تفريغ البيانات من سطر الأوامر
تتضمّن حزمة تطوير البرامج (SDK) لنظام التشغيل Android أداة قاعدة بيانات sqlite3
لفحص بيانات تطبيقك.
لقواعد البيانات. وهو يتضمن أوامر مثل .dump
لطباعة محتوى
و.schema
لطباعة عبارة SQL CREATE
لجدول موجود.
يمكنك أيضًا تنفيذ أوامر SQLite من سطر الأوامر، كما هو موضح في المقتطف التالي:
adb -s emulator-5554 shell sqlite3 /data/data/your-app-package/databases/rssitems.db
لمزيد من المعلومات، يمكنك الاطّلاع على سطر أوامر sqlite3
المستندات المتوفرة في صفحة
موقع SQLite على الويب.
مصادر إضافية
لمزيد من المعلومات عن اختبار قاعدة بيانات الغرفة وتصحيح الأخطاء فيها، يُرجى الاطّلاع على ما يلي: موارد إضافية وهي:
مشاركات المدونة
الفيديوهات
- Database Inspector (أداة فحص قاعدة البيانات) (11 أسبوعًا من نظام التشغيل Android)