Как создавать тесты, что удостовериться в работоспособности функции, а также регулярной проверки ее состояния после апгрейда.
Удобным инструментом для тестирования является модуль unittest. Проведем с его помощью тесты функции по разметки неструктурированных полей описания товаров, о которой шла речь в прошлой статье:
Для этого создаем класс, наследующий unittest.TestCase, и задаем в нем методы с именами, начинающимися со слова test_ (они и будут интерпретироваться как тестовые). Вызов тестов инициируется функцией unittest.main. Также в unittest предусмотрены служебные методы setUp и tearDown, которые запускаются до и после каждого теста.
Непосредственно проверки внутри тестовых методов инициируются с помощью следующих методов (таблица взята из официальной документации по unittest):
Напишем свою реализацию тестового класса для указанной выше функции:
В комментариях к методам указаны различные ситуации, в которых мы тестируем результат работы функции по разметки кодовыми названиями неструктурированных полей описания различных товаров.
Следует отметить, что функции self.AssertX класса TestCase предусматривают возможность задания сообщения, которое будет выводиться при их срабатывании.
Например, изменим в методе test_all_occ последний элемент массива res и добавим сообщение в self.assertEqual.
После выполнения сценария результат будет следующим: