230 Глава 11 • Тестирование
Таблица 11.1. Методы assert, предоставляемые модулем unittest
Метод Использование assertEqual(a, b)
Проверяет, что
a == b
assertNotEqual(a, b)
Проверяет, что
a != b
assertTrue(x)
Проверяет, что значение
x
истинно
assertFalse(x)
Проверяет, что значение
x
ложно
assertIn(элемент, список)
Проверяет, что элемент входит в список
assertNotIn(элемент, список)
Проверяет, что элемент не входит в список
Класс для тестирования
Тестирование класса имеет много общего с тестированием функции — значитель-
ная часть работы направлена на тестирование поведения методов класса. Впрочем,
существуют и различия, поэтому мы напишем отдельный класс для тестирования.
Возьмем класс для управления проведением анонимных опросов:
survey.py class AnonymousSurvey():
"""Сбор анонимных ответов на опросы."""
❶
def __init__(self, question):
"""Сохраняет вопрос и готовится к сохранению ответов."""
self.question = question
self.responses = []
❷
def show_question(self):
"""Выводит вопрос."""
print(self.question)
❸
def store_response(self, new_response):
"""Сохраняет один ответ на опрос."""
self.responses.append(new_response)
❹
def show_results(self):
"""Выводит все полученные ответы."""
print("Survey results:")
for response in self.responses:
print(f"- {response}")
Класс начинается с вопроса, который вы предоставили
, и включает пустой
список для хранения ответов. Класс содержит методы для вывода вопроса
, до-
бавления нового ответа в список ответов
и вывода всех ответов, хранящихся
в списке
. Чтобы создать экземпляр на основе этого класса, необходимо предо-
ставить вопрос. После того как будет создан экземпляр, представляющий конкрет-
ный опрос, программа выводит вопрос методом
show_question()
, сохраняет ответ
методом
store_response()
и выводит результаты вызовом
show_results()
.
Тестирование класса
231 Чтобы продемонстрировать, что класс
AnonymousSurvey
работает, напишем про-
грамму, которая использует этот класс: