Правильный подход к тестированию дроп-таблицы sqlite в unittest - PullRequest
0 голосов
/ 02 апреля 2019

Я пишу юнит-тесты для тестирования моей среды.Я создал такие тесты, как:

def test_database_file_present_and_readable(self):
    self.assertTrue(os.access(path_db_file, os.R_OK))

def test_connect_to_db(self):
    conn = sqlite3.connect(path_db_file)
    conn.close()

def test_create_table(self):
    conn = sqlite3.connect(path_db_file)
    cur = conn.cursor()
    cur.execute("CREATE TABLE test_table (id integer  PRIMARY KEY, name text)")
    conn.commit()
    conn.close()

def test_insert_into_table(self):
    conn = sqlite3.connect(path_db_file)
    cur = conn.cursor()
    cur.execute("insert into test_table (name) values (?)", ["Test value"])
    conn.commit()
    conn.close()

def test_update_table(self):
    conn = sqlite3.connect(path_db_file)
    cur = conn.cursor()
    cur.execute("update test_table set id = 2 where id = ?", [1])
    conn.commit()
    conn.close()

def test_delete_from_table(self):
    conn = sqlite3.connect(path_db_file)
    cur = conn.cursor()
    cur.execute("delete from test_table where id = ?", [2])
    conn.commit()
    conn.close()

def test_if_test_table_is_empty(self):
    conn = sqlite3.connect(path_db_file)
    cur = conn.cursor()
    result = cur.execute("select exists(select 1 from test_table)").fetchall()
    conn.commit()
    conn.close()
    self.assertTrue(result == 1)

def test_delete_table(self):
    conn = sqlite3.connect(path_db_file)
    cur = conn.cursor()
    cur.execute("drop table test_table")
    conn.commit()
    conn.close()

И во время выполнения программы порядок тестов неизвестен - как установить порядок или как очистить базу данных после создания тестов с созданием таблицы?

1 Ответ

0 голосов
/ 02 апреля 2019

Вы можете получить указатели о порядке выполнения тестового метода здесь: Python unittest.TestCase порядок выполнения

Одно предложение - если вы собираетесь на такое тестирование, лучше смоделировать внешние зависимости, такие какsqlite и протестируйте только код, который вы написали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...