УПРАЖНЕНИЯ
11-1 . Город, страна: напишите функцию, которая получает два параметра: название
страны и название города . Функция должна возвращать одну строку в формате «Го-
род, Страна», например «Santiago, Chile» . Сохраните функцию в модуле с именем city_
functions .py .
Создайте файл test_cities .py для тестирования только что написанной функции (не забудьте
импортировать unittest и тестируемую функцию) . Напишите метод test_city_country() для
проверки того, что вызов функции с такими значениями, как ‘santiago’ и ‘chile’, дает пра-
вильную строку . Запустите test_cities .py и убедитесь в том, что тест test_city_country() про-
ходит успешно .
11-2 . Население: измените свою функцию так, чтобы у нее был третий обязательный
параметр — население . В новой версии функция должна возвращать одну строку вида
«Santiago, Chile — population 5000000 .» Снова запустите программу test_cities .py . Убедитесь
в том, что тест test_city_country() на этот раз не проходит .
Измените функцию так, чтобы параметр населения стал необязательным . Снова запустите
test_cities .py и убедитесь в том, что тест test_city_country() проходит успешно .
Напишите второй тест test_city_country_population(), который проверяет вызов функции
со значениями ‘santiago’, ‘chile’ и ‘population=5000000’ . Снова запустите test_cities .py и убе-
дитесь в том, что новый тест проходит успешно .
Тестирование класса
В первой части этой главы мы писали тесты для отдельной функции. Сей-
час мы займемся написанием тестов для класса. Классы будут использовать-
ся во многих ваших программах, поэтому возможность доказать, что ваши
классы работают правильно, будет безусловно полезной. Если тесты для класса,
над которым вы работаете, проходят успешно, вы можете быть уверены в том,
что усовершенствования класса не приведут к случайному нарушению его те-
кущего поведения.
Разные методы assert
Класс
unittest.TestCase
содержит целое семейство проверочных методов
assert
.
Как упоминалось ранее, эти методы проверяют, выполняется ли условие, которое
должно выполняться в определенной точке вашего кода. Если условие истинно,
как и предполагалось, то ваши ожидания относительно поведения части вашей
программы подтверждаются; вы можете быть уверены в отсутствии ошибок. Если
же условие, которое должно быть истинным, окажется ложным, то Python выдает
исключение.
В табл. 11.1 перечислены шесть часто используемых методов
assert
. С их помощью
можно проверить, что возвращаемые значения равны или не равны ожидаемым,
что значения равны
True
или
False
или что значения входят или не входят в за-
данный список. Эти методы могут использоваться только в классах, наследующих
Тестирование класса 217
от
unittest.TestCase
; рассмотрим пример использования такого метода в контексте
тестирования реального класса.
Достарыңызбен бөлісу: |