Как проверить модуль поиска данных? - PullRequest
0 голосов
/ 30 мая 2019

Я работаю над проектом, и у меня есть модуль поиска данных, написанный на Python.Все, что он делает, это создает запрос, используя строковые манипуляции, а затем выполняет запрос, используя другой модуль (модуль подключения).Я хочу сделать модульные тесты правильно.У кого-нибудь есть рекомендации по технике?Является ли издевательство правильным способом для этого?

1 Ответ

1 голос
/ 31 мая 2019

Ваш код состоит из вычислительной части (создание строки запроса) и интерактивной части, где осуществляется фактическая связь с базой данных.Если эти две комбинации объединены, код выглядит следующим образом:

def fetchData(self):
    query = ... some string building logic here
    results = ... database access using query

В таком коде, просто для проверки логики построения строк в модульном тестировании, вы бы имитировали доступ к базе данных (чтобы избежать зависимостив базе данных в ваших юнит-тестах по разным причинам).В последующем интеграционном тестировании вы затем протестируете взаимодействие fetchData с реальной базой данных.

Альтернативный подход состоит в извлечении алгоритмической части (создание строки запроса) в отдельный метод, такой какчто вы можете легко протестировать эту часть независимо друг от друга.

def buildQuery(self):
    query = ... some string building logic here
    return query

def fetchData(self):
    query = self.buildQuery()
    results = ... database access using query

Это упрощает ваше модульное тестирование, потому что для тестирования buildQuery вам не нужно проверять базу данных.Опять же, при интеграционном тестировании вы должны затем проверить взаимодействие fetchData с реальной базой данных.

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