11
Тестирование
Вместе с функциями и классами вы также можете написать тесты для своего кода.
Тестирование доказывает, что код работает так, как положено, для любых разно-
видностей входных данных, которые он может получать. Тесты позволят вам быть
уверенным в том, что код будет работать правильно и тогда, когда вашими про-
граммами станут пользоваться другие люди. Тестирование при добавлении нового
кода гарантирует, что внесенные изменения не повлияют на текущее поведение
программы. Все программисты допускают ошибки, поэтому каждый программист
должен часто тестировать свой код и выявлять ошибки до того, как с ними столк-
нутся другие пользователи.
В этой главе вы научитесь тестировать код средствами модуля Python
unittest
.
Вы узнаете, как построить тестовые сценарии, как проверить, выдает ли программа
для конкретных входных данных ожидаемый результат и как тестировать функ-
ции и классы. Также вы научитесь оценивать, сколько тестов нужно написать для
проекта.
Тестирование
функции
Чтобы потренироваться в тестировании, нам понадобится код. Ниже приведена
простая функция, которая получает имя и фамилию и возвращает отформатиро-
ванное полное имя:
name_function.py
def get_formatted_name(first, last):
"""Строит отформатированное полное имя."""
full_name = first + ' ' + last
return full_name.title()
Функция
get_formatted_name()
строит полное имя из имени и фамилии, разде-
лив их пробелом, преобразует первый символ каждого слова к верхнему регистру
и возвращает полученный результат. Чтобы убедиться в том, что функция
get_
formatted_name()
работает правильно, мы напишем программу, использующую
эту функцию. Программа
names .py
запрашивает у пользователя имя и фамилию
и выдает отформатированное полное имя:
names.py
from name_function import get_formatted_name
Тестирование функции
211
print("Enter 'q' at any time to quit.")
while True:
first = input("\nPlease give me a first name: ")
if first == 'q':
break
last = input("Please give me a last name: ")
if last == 'q':
break
formatted_name = get_formatted_name(first, last)
print("\tNeatly formatted name: " + formatted_name + '.')
Программа импортирует функцию
g e t _ f o r m a t t e d _ n a m e ( )
из
модуля
name_function .py
. Пользователь вводит последовательность имен и фамилий
и видит, что программа сгенерировала отформатированные полные имена:
Enter 'q' at any time to quit.
Please give me a first name:
Достарыңызбен бөлісу: