217 от
unittest.TestCase
; рассмотрим пример использования такого метода в контексте
тестирования реального класса.
Таблица 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(question)
def store_response(self, new_response):
"""Сохраняет один ответ на опрос."""
self.responses.append(new_response)
def show_results(self):
"""Выводит все полученные ответы."""
print("Survey results:")
for response in responses:
print('- ' + response)
Класс начинается с вопроса, предоставленного администратором
, и включает
пустой список для хранения ответов. Класс содержит методы для вывода во-
проса
, добавления нового ответа в список ответов
и вывода всех ответов,
хранящихся в списке
. Чтобы создать экземпляр на основе этого класса, не-
обходимо предоставить вопрос. После того как будет создан экземпляр, пред-
ставляющий конкретный опрос, программа выводит вопрос методом
show_