Python/Справочник по библиотеке Python 2.6: различия между версиями
Содержимое удалено Содержимое добавлено
Tatyr (обсуждение | вклад) |
Tatyr (обсуждение | вклад) |
||
Строка 391:
==== Классы и функции ====
<h5>'''class unittest.TestCase([''methodName''])
Экземпляры класса '''TestCase''' являются минимальными тестовыми единицами во вселенной '''unittest'''. Данный класс предназначен быть базовым классом, с заданием конкретных тестов в его подклассах. Класс реализует интерфейс необходимый
Каждый экземпляр TestCase выполняет единственный тестовый метод под названием ''methodName''. Как вы возможно помните, выше приводился пример в котором было что-то вроде этого:
<source lang="python">
def suite():
suite = unittest.TestSuite()
Строка 400 ⟶ 403 :
suite.addTest(WidgetTestCase('test_resize'))
return suite
</source>
В нем создаются два экземпляра WidgetTestCase, каждый из которых выполняет единственный тест.▼
По умолчанию за methodName принимается 'runTest'.▼
class unittest.FunctionTestCase(testFunc[, setUp[, tearDown[, description]]])¶▼
Данный класс реализует часть интерфейса TestCase, позволяющую прогонщику теста выполнить тест, но не предоставляет методов с помощью которых тестовый код может обнаруживать ошибки и сообщать о них. Он используется для создания тестовых вариантов на основе унаследованного тестового кода, позволяя интегрировать его в тестовый каркас на базе unittest.▼
▲В нем создаются два экземпляра '''WidgetTestCase''', каждый из которых выполняет единственный тест.
class unittest.TestSuite([tests])¶▼
▲По умолчанию за ''methodName'' принимается 'runTest'.
▲<h4>'''class unittest.FunctionTestCase(testFunc[, ''setUp''[, ''tearDown''[, ''description'']]])
Класс предоставляет возможность объединения отдельных тестовых вариантов и тестовых наборов. Класс представляет интерфейс необходимый прогонщику тестов для их выполнения как любых других тестовых вариантов. Выполнение экземпляра TestSuite аналогично итерированию по всему набору, с отдельным запуском каждого теста.▼
Если передается tests, ¬- это должен быть итератор по отдельным тестовым вариантам или другим тестовым наборам которые будут использоваться для начального построения набора. С помощью дополнительных методов класса можно добавлять тестовые варианты и наборы уже после создания экземпляра.▼
class unittest.TestLoader¶▼
▲Данный класс реализует часть интерфейса '''TestCase''', позволяющую
Класс отвечает за загрузку тестов в соответствии с различными критериями и их возвращение в обертке TestSuite. Он может проводить загрузку всех тестовых в заданном модуле или подклассе TestCase.▼
class unittest.TestResult¶▼
▲Класс предоставляет возможность объединения отдельных тестовых вариантов и тестовых наборов. Класс представляет интерфейс необходимый
▲Если передается ''tests'',
▲Класс отвечает за загрузку тестов в соответствии с различными критериями и их возвращение в обертке '''TestSuite'''. Он может проводить загрузку всех тестовых вариантов в заданном модуле или подклассе '''TestCase.'''
Класс используется для сбора информации о тестах которые прошли успешно и провалились.
unittest.defaultTestLoader¶▼
Экземпляр класса TestLoader предназначенный для совместного использования. Если нет необходимости в изменении класса TestLoader, вместо постоянного создания новых экземпляров может использоваться этот.▼
class unittest.TextTestRunner([stream[, descriptions[, verbosity]]])¶▼
▲Экземпляр класса '''TestLoader''' предназначенный для совместного использования. Если нет необходимости в изменении класса '''TestLoader''', вместо постоянного создания новых экземпляров может использоваться этот.
Базовая реализация тестового прогонщика, выводящая результаты тестов как стандартные ошибки. У класса есть несколько настраиваемых параметров, но в целом он очень прост. Графические приложения выполняющие тестовые наборы должны предоставлять альтернативные реализации.▼
unittest.main([module[, defaultTest[, argv[, testRunner[, testLoader]]]]])¶▼
▲Базовая реализация тестового
▲<h4>'''unittest.main([''module''[, ''defaultTest''[, ''argv''[, ''testRunner''[, ''testLoader'']]]]])
Командно-строчная программа выполняющая набор тестов, предназначена для реализации простого выполнения тестовых модулей. Простейшим использованием данной функции является включение следующей строки в конец тестового сценария:
<source lang="python">
if __name__ == '__main__':
unittest.main()
</source>
Аргумент testRunner может быть как классом тестового прогонщика, так и уже созданным экземпляром такого класса.▼
В некоторых случаях, уже существующие тесты могут быть написаны с помощью модуля doctest. Для таких случаев в модуле есть класс DocTestSuite, автоматически создающий экземпляры unittest.TestSuite из уже существующих тестов на базе doctest.▼
▲Аргумент '''testRunner''' может быть как классом тестового прогонщика, так и уже созданным экземпляром такого класса.
▲В некоторых случаях, уже существующие тесты могут быть написаны с помощью модуля '''doctest'''. Для таких случаев в модуле есть класс '''DocTestSuite''', автоматически создающий экземпляры '''unittest.TestSuite''' из уже существующих тестов на базе '''doctest'''.
====25.3.5. Объекты TestCase¶====
|