Тестирование
класса
221
setUp()
, который позволяет создать эти объекты один раз, а затем использовать их
в каждом из тестовых методов. Если в класс
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)
unittest.main()
Метод
setUp()
решает две задачи: он создает экземпляр опроса
и список отве-
тов
. Каждый из этих атрибутов снабжается префиксом
self
, поэтому он может
использоваться где угодно в классе. Это обстоятельство упрощает два тестовых
метода, потому что им уже не нужно создавать экземпляр опроса или ответы.
Метод
test_store_single_response()
убеждается в том, что первый ответ в
self.
responses
—
self.responses[0]
— сохранен правильно, а метод
test_store_single_
response()
убеждается в том, что правильно были сохранены все три ответа в
self.
responses
.
При повторном запуске
test_survey .py
оба теста по-прежнему проходят. Эти тесты
будут особенно полезными при расширении
AnonymousSurvey
с поддержкой не-
скольких ответов для каждого участника. После внесения изменений вы можете
повторить тесты и убедиться в том, что изменения не повлияли на возможность
сохранения отдельного ответа или серии ответов.