Написание юнит-тестов на Python - PullRequest
0 голосов
/ 11 октября 2018

У меня есть задача, в которой у меня есть CSV-файл с некоторыми примерами данных.Задача состоит в том, чтобы преобразовать данные внутри CSV-файла в другие форматы, такие как JSON, HTML, YAML и т. Д., После применения некоторых правил проверки данных.

Теперь я также должен написать несколько тестов для этого в pytest илимодуль unittest в Python.

Мой вопрос: как мне на самом деле написать модульные тесты для этого, так как я конвертирую их в разные файлы JSON / HTML?Должен ли я подготовить несколько примеров файлов, а затем провести сравнение с ними в своих модульных тестах.

Я думаю, что только часть проверки данных в задаче может быть проверена с помощью unittest, а не создание файлов в разных форматах, верно?

Любые идеи будут чрезвычайно полезны.

Заранее спасибо.

1 Ответ

0 голосов
/ 11 октября 2018

Вы должны выполнять функциональные тесты, поэтому тестируйте весь конвейер от файла csv до конечного результата, но модульные тесты - это проверка работы отдельных шагов.

Так, например, вы можете прочитать файл csvдолжным образом?Сбой, как и ожидалось, если вы не предоставляете CSV-файл?Вы можете проверить каждую единицу проверки?Они терпят неудачу, когда они должны?Они передают действительные данные?

И, конечно, результат должен быть проверен.Начиная с известного внутреннего представления, верен ли полученный json?Содержит ли он все необходимые данные?То же самое для yaml, HTML.Вы не должны проверять форматирование, но на самом деле то, что было выведено и если это правильно.

Вы должны всегда проверять, что действительные данные проходят, а что нет на каждом этапе вашего рабочего процесса.

...