ทดสอบและแก้ไขข้อบกพร่องของฐานข้อมูล

การยืนยันความเสถียรของฐานข้อมูลของแอปและของผู้ใช้เป็นสิ่งสำคัญ เมื่อสร้างฐานข้อมูลโดยใช้ ไลบรารีการคงอยู่ของห้อง หน้านี้ กล่าวถึงวิธีทดสอบฐานข้อมูล และดำเนินการขั้นตอนการดีบักเพื่อช่วย การทดสอบที่ผ่าน

ทดสอบฐานข้อมูล

มี 2 วิธีในการทดสอบฐานข้อมูล ได้แก่

  • ในอุปกรณ์ Android
  • ในเครื่องพัฒนาซอฟต์แวร์โฮสต์ (ไม่แนะนำ)

สำหรับข้อมูลเกี่ยวกับการทดสอบเฉพาะสำหรับการย้ายข้อมูลฐานข้อมูล โปรดดูที่ การย้ายข้อมูลการทดสอบ

ทดสอบในอุปกรณ์ Android

วิธีที่แนะนำสำหรับการทดสอบการใช้งานฐานข้อมูลคือการเขียน การทดสอบ JUnit ที่ทำงานในอุปกรณ์ Android เนื่องจากการทดสอบเหล่านี้ไม่ต้องใช้ การสร้างกิจกรรม การดำเนินการดังกล่าวควรที่จะรวดเร็วกว่าการทดสอบ UI ของคุณ

เมื่อตั้งค่าการทดสอบ คุณควรสร้างเวอร์ชันในหน่วยความจำของ ที่จะทำให้การทดสอบของคุณซับซ้อนมากขึ้น ดังที่ปรากฏในตัวอย่างต่อไปนี้:

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 รองรับฐานข้อมูลที่เพิ่มขึ้น การย้ายข้อมูลเพื่อเก็บรักษา ข้อมูลแอปที่มีอยู่ในกรณีที่การอัปเดตแอปเปลี่ยนสคีมาของฐานข้อมูล อย่างไรก็ตาม การย้ายข้อมูลที่ระบุไม่ถูกต้องอาจทำให้แอปขัดข้องได้ สร้าง ตรวจสอบว่าคุณทดสอบฐานข้อมูลห้องแล้ว การย้ายข้อมูล

แก้ไขข้อบกพร่องของฐานข้อมูล

มีเครื่องมือและกระบวนการมากมายที่คุณใช้เพื่อแก้ไขข้อบกพร่องของฐานข้อมูลได้

ใช้เครื่องมือตรวจสอบฐานข้อมูล

ใน Android Studio 4.1 ขึ้นไป เครื่องมือตรวจสอบฐานข้อมูลช่วยให้คุณตรวจสอบ การค้นหา และแก้ไขฐานข้อมูลของแอปขณะที่แอปทำงานอยู่ ฐานข้อมูล เครื่องมือตรวจสอบใช้งานได้กับ SQLite เวอร์ชันที่มาพร้อมกับ Android และมีฟีเจอร์พิเศษสำหรับใช้กับห้อง

  • ใช้การทำงานของรางน้ำเพื่อเรียกใช้การค้นหาจาก 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

แหล่งข้อมูลเพิ่มเติม

หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบและการแก้ไขข้อบกพร่องของฐานข้อมูลห้อง โปรดดูหัวข้อต่อไปนี้ แหล่งข้อมูลเพิ่มเติม

บล็อกโพสต์

วิดีโอ