Beispiel: SQLite-Datenbank testen¶
Zum Testen, ob die Datenbank
library.db
mitcreate_db.py
angelegt wurde, importieren wir neben sqlite3 und unittest auch nochcreate_db.py
und os:1import os 2import sqlite3 3import unittest 4 5import create_db
Anschließend definieren wir zunächst eine Testklasse
TestCreateDB
:8class TestCreateDB(unittest.TestCase):
In ihr definieren wir dann die Testmethode
test_db_exists
, in der wir mitassert
die Annahme treffen, dass die Datei in os.path existiert:9 def test_db_exists(self): 10 assert os.path.exists("library.db")
Nun überprüfen wir auch noch, ob die Tabelle
books
angelegt wurde. Hierfür versuchen wir, die Tabelle erneut anzulegen und erwarten mitassertRaises
, dasssqlite
mit einemOperationalError
beendet wird:12 def test_table_exists(self): 13 with self.assertRaises(sqlite3.OperationalError): 14 create_db.cursor.execute("CREATE TABLE books(title text)")
Weitere Tests wollen wir nicht an einer Datenbank im Dateisystem durchführen sondern in einer SQLite-Datenbank im Arbeitsspeicher:
17class TestCommands(unittest.TestCase): 18 def setUp(self): 19 self.conn = sqlite3.connect(":memory:") 20 self.cursor = self.conn.cursor()
Siehe auch
Weitere Beispiele zum Testen eurer SQLite-Datenbankfunktionen findet ihr in der SQLite Testsuite test_sqlite3.