Книга «Изучаем Python»



Pdf көрінісі
бет136/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   132   133   134   135   136   137   138   139   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 11 • Тестирование
При тестировании классов, написанных вами, метод 
setUp()
упрощает написание 
тестовых методов. Вы создаете один набор экземпляров и атрибутов в 
setUp()

а затем используете эти экземпляры во всех тестовых методах. Это намного проще 
и удобнее, чем создавать новый набор экземпляров и атрибутов в каждом тестовом 
методе.
ПРИМЕЧАНИЕ
Во время работы тестового сценария Python выводит один символ для каждого модульного теста 
после его завершения . Для прошедшего теста выводится точка; если при выполнении произошла 
ошибка, выводится символ E, а если не прошла проверка условия assert, выводится символ F . Вот 
почему вы увидите другое количество точек и символов в первой строке вывода при выполнении 
ваших тестовых сценариев . Если выполнение тестового сценария занимает слишком много време-
ни, потому что сценарий содержит слишком много тестов, эти символы дадут некоторое представ-
ление о количестве прошедших тестов .
УПРАЖНЕНИЯ
11-3 . Работник: напишите класс Employee, представляющий работника . Метод __init__() 
должен получать имя, фамилию и ежегодный оклад; все эти значения должны сохраняться 
в атрибутах . Напишите метод give_raise(), который по умолчанию увеличивает ежегодный 
оклад на $5000 — но при этом может получать другую величину прибавки .
Напишите тестовый сценарий для Employee . Напишите два тестовых метода, test_give_
default_raise() и test_give_custom_raise() . Используйте метод setUp(), чтобы вам не при-
ходилось заново создавать экземпляр Employee в каждом тестовом методе . Запустите свой 
тестовый сценарий и убедитесь в том, что оба теста прошли успешно .
Итоги
В этой главе вы научились писать тесты для функций и классов с использованием 
средств модуля 
unittest
. Вы узнали, как написать класс, наследующий от 
unittest.
TestCase
, и как писать тестовые методы для проверки конкретных аспектов пове-
дения ваших функций и классов. Вы научились использовать метод 
setUp()
для 
эффективного создания экземпляров и атрибутов, которые могут использоваться 
во всех методах для тестирования класса.
Тестирование — важная тема, на которую многие новички не обращают вни-
мания. Пока вы делаете свои первые шаги в программировании, писать тесты 
для простых проектов не нужно. Но как только вы начинаете работать над про-
ектами, требующими значительных затрат ресурсов на разработку, непременно 
обеспечьте тестирование критических аспектов поведения ваших функций 
и классов. С эффективными тестами вы можете быть уверены в том, что измене-
ния в проекте не повредят тому, что уже работает, а это развяжет вам руки для 
усовершенствования кода. Случайно нарушив существующую функциональность, 
вы немедленно узнаете об этом, что позволит вам быстро исправить проблему. 
Отреагировать на сбой теста всегда намного проще, чем на отчет об ошибке от не-
довольного пользователя.
Другие программисты будут более уважительно относиться к вашим проектам, если 
вы включите в них исходные тесты. Они будут чувствовать себя более комфортно, 


Итоги
223
экспериментируя с вашим кодом, и с большей готовностью присоединятся к уча-
стию в ваших проектах. Если вы будете участвовать в проекте, над которым работа-
ют другие программисты, вам придется продемонстрировать, что ваш код проходит 
существующие тесты; кроме того, от вас будут ждать, что вы напишете тесты для 
нового поведения, добавленного вами в проект.
Поэкспериментируйте с тестами и освойтесь с процессом тестирования кода. 
Пишите тесты для критических аспектов поведения ваших функций и классов, 
но не стремитесь к полному тестовому покрытию своих ранних проектов (если 
у вас для этого нет особых причин).


Ч а с т ь II

Проекты
Поздравляем! Вы знаете о Python достаточно для того, чтобы взяться за построение 
интерактивных, осмысленных проектов . Создание собственных проектов закрепит новые 
навыки и упрочит ваше понимание концепций, представленных в части I .
В части II представлены три типа проектов; вы можете взяться за любые из них в том 
порядке, который вам больше нравится . Ниже приведено краткое описание каждого 
проекта, чтобы вам было проще решить, с чего начать .
Программирование игры на языке Python
В проекте Alien Invasion (главы 12, 13 и 14) мы воспользуемся пакетом Pygame 
для написания 2D-игры, в которой игрок должен сбивать корабли пришельцев, 
падающие по экрану с нарастающей скоростью и сложностью. К концу этого про-
екта вы будете знать достаточно для того, чтобы создавать собственные 2D-игры 
с использованием Pygame.
Визуализация данных
Проект Data Visualization начинается с главы 15. В этом проекте вы научитесь 
генерировать данные и создавать практичные, элегантные визуализации этих 
данных с использованием пакетов matplotlib и Pygal. Глава 16 научит вас работать 
с данными из сетевых источников и передавать их пакету визуализации для по-
строения графиков погодных данных и карты с населением мира. Наконец, глава 17 
показывает, как написать программу для автоматической загрузки и визуализации 
данных. Навыки визуализации пригодятся вам в изучении области анализа дан-
ных — в современном мире это умение ценится очень высоко.
Веб-приложения
В проекте Web Applications (главы 18, 19 и 20) мы при помощи пакета Django соз-
дадим простое веб-приложение для ведения веб-дневника по произвольным темам. 
Пользователь создает учетную запись с именем и паролем, вводит тему и делает 
заметки. Вы также научитесь развертывать свои приложения так, чтобы сделать 
их доступными для потенциальных пользователей со всего мира.
После завершения проекта вы сможете заняться построением собственных про-
стых веб-приложений. Кроме того, вы будете готовы к изучению более серьезных 
ресурсов, посвященных построению приложений с использованием Django.


Проект I
.
Инопланетное вторжение


12
Стреляющий корабль
Давайте создадим собственную игру! Мы воспользуемся Pygame — подборкой ин-
тересных, мощных модулей Python для управления графикой, анимацией и даже 
звуком, упрощающей построение сложных игр. Pygame берет на себя такие задачи, 
как перерисовка изображений на экране, что позволяет вам пропустить б
у
льшую 

Достарыңызбен бөлісу:
1   ...   132   133   134   135   136   137   138   139   ...   266




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

    Басты бет