М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет163/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   159   160   161   162   163   164   165   166   ...   334
Байланысты:
Изучаем Python

name_function.py
def get_formatted_name(first, last):
"""Строит отформатированное полное имя."""
full_name = f"{first} {last}"
return full_name.title()
Функция 
get_formatted_name()
строит полное имя из имени и фамилии, разде-
лив их пробелом, преобразует первый символ каждого слова к верхнему регистру 
и возвращает полученный результат. Чтобы убедиться в том, что функция 
get_
formatted_name()
работает правильно, мы напишем программу, использующую 


Тестирование функции
223
эту функцию. Программа 
names .py
запрашивает у пользователя имя и фамилию 
и выдает отформатированное полное имя:
names.py
from name_function import get_formatted_name
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(f"\tNeatly formatted name: {formatted_name}.")
Программа импортирует функцию 
get_formatted_name()
из модуля 
name_function .
py
. Пользователь вводит последовательность имен и фамилий и видит, что про-
грамма сгенерировала отформатированные полные имена:
Enter 'q' at any time to quit.
Please give me a first name: 
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
из стандартной библиотеки Python предоставляет функциональ-
ность для тестирования вашего кода. 
Модульный тест
проверяет правильность ра-


224

Достарыңызбен бөлісу:
1   ...   159   160   161   162   163   164   165   166   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет