Байланысты: Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )
janis Please give me a last name:
joplin Neatly formatted name: Janis Joplin.
Please give me a first name:
bob Please give me a last name:
dylan Neatly formatted name: Bob Dylan.
Please give me a first name:
q Как видно из листинга, имена сгенерированы правильно. Но допустим, вы решили
изменить функцию
get_formatted_name()
, чтобы она также работала со вторыми
именами. При этом необходимо проследить за тем, чтобы функция не перестала
правильно работать для имен, состоящих только из имени и фамилии. Чтобы про-
тестировать код, можно запустить
names .py
и для проверки вводить имя из двух
компонентов (скажем,
Janis
Joplin
) при каждом изменении
get_formatted_name()
,
но это довольно утомительно. К счастью, Python предоставляет эффективный
механизм автоматизации тестирования вывода функций. При автоматизации те-
стирования
get_formatted_name()
вы будете уверены в том, что функция успешно
работает для всех видов имен, для которых написаны тесты.
Прохождение теста
Вы не сразу привыкнете к синтаксису создания тестовых сценариев, но после того,
как тестовый сценарий будет создан, вы сможете легко добавить новые модульные
тесты для своих функций. Чтобы написать тестовый сценарий для функции, импор-
тируйте модуль
unittest
и функцию, которую необходимо протестировать. Затем
создайте класс, наследующий от
unittest.TestCase
, и напишите серию методов для
тестирования различных аспектов поведения своей функции.
Ниже приведен тестовый сценарий с одним методом, который проверяет, что функ-
ция
get_formatted_name()
правильно работает при передаче имени и фамилии: