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



Pdf көрінісі
бет171/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   167   168   169   170   171   172   173   174   ...   334
Байланысты:
Изучаем Python


Глава 11 • Тестирование
set
Up()
, который позволяет создать эти объекты один раз, а затем использовать их 
в каждом из тестовых методов. Если в класс 
TestCase
включается метод 
setUp()

Python выполняет метод 
setUp()
перед запуском каждого метода, имя которого на-
чинается с 
test_
. Все объекты, созданные методом 
setUp()
, становятся доступными 
во всех написанных вами тестовых методах.
Применим метод 
setUp()
для создания экземпляра 
AnonymousSurvey
и набора отве-
тов, которые могут использоваться в 
test_store_single_response()
и 
test_store_
three_responses()
:
import unittest
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
"""Тесты для класса AnonymousSurvey."""
def setUp(self):
"""
Создание опроса и набора ответов для всех тестовых методов.
"""
question = "What language did you first learn to speak?"

self.my_survey = AnonymousSurvey(question)

self.responses = ['English', 'Spanish', 'Mandarin']
def test_store_single_response(self):
"""Проверяет, что один ответ сохранен правильно."""
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0], self.my_survey.responses)
def test_store_three_responses(self):
"""Проверяет, что три ответа были сохранены правильно."""
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response, self.my_survey.responses)
if __name__ == '__main__':
unittest.main()
Метод 
setUp()
решает две задачи: он создает экземпляр опроса 

и список отве-
тов 

. Каждый из этих атрибутов снабжается префиксом 
self
, поэтому он может 
использоваться где угодно в классе. Это обстоятельство упрощает два тестовых 
метода, потому что им уже не нужно создавать экземпляр опроса или ответы. 
Метод 
test_store_single_response()
убеждается в том, что первый ответ в 
self.
responses
— 
self.responses[0]
— сохранен правильно, а метод 
test_store_single_
response()
убеждается в том, что правильно были сохранены все три ответа в 
self.
responses
.
При повторном запуске 
test_survey .py
оба теста по-прежнему проходят. Эти тесты 
будут особенно полезными при расширении 
AnonymousSurvey
с поддержкой не-
скольких ответов для каждого участника. После внесения изменений вы можете 


Итоги
235
повторить тесты и убедиться в том, что изменения не повлияли на возможность 
сохранения отдельного ответа или серии ответов.
При тестировании классов, написанных вами, метод 
setUp()
упрощает написание 
тестовых методов. Вы создаете один набор экземпляров и атрибутов в 
setUp()

а затем используете эти экземпляры во всех тестовых методах. Это намного проще 
и удобнее, чем создавать новый набор экземпляров и атрибутов в каждом тестовом 
методе.


Достарыңызбен бөлісу:
1   ...   167   168   169   170   171   172   173   174   ...   334




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

    Басты бет