การยืนยันความเสถียรของฐานข้อมูลของแอปและของผู้ใช้เป็นสิ่งสำคัญ เมื่อสร้างฐานข้อมูลโดยใช้ ไลบรารีการคงอยู่ของห้อง หน้านี้ กล่าวถึงวิธีทดสอบฐานข้อมูล และดำเนินการขั้นตอนการดีบักเพื่อช่วย การทดสอบที่ผ่าน
ทดสอบฐานข้อมูล
มี 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
แหล่งข้อมูลเพิ่มเติม
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบและการแก้ไขข้อบกพร่องของฐานข้อมูลห้อง โปรดดูหัวข้อต่อไปนี้ แหล่งข้อมูลเพิ่มเติม
บล็อกโพสต์
วิดีโอ
- เครื่องมือตรวจสอบฐานข้อมูล (11 สัปดาห์ของ Android)