Простейший пример тестирования функции
Проще всего пояснить, как это делается на примере. Ниже приведен простейший пример функции вместе с тестом для ее проверки. Как в этом тексте все сделано:
Проще всего пояснить, как это делается на примере. Ниже приведен простейший пример функции вместе с тестом для ее проверки. Как в этом тексте все сделано:
- В строках комментариев к функции написан тест. Тесты могут чередоваться с обычным текстом.
- Строчки комментария, начинающиеся с '>>>' выполняются
- В первой строчке, которая следует за строчками с '>>>', стоит результат, с которым будет сравнен с возвращаемый выражением в последней исполненной строке результатом. Если результаты равны, ничего не произойдет, если не равны, будет выдано сообщение об ошибке теста.
- Тестирование вывается вызовом функции doctest.testmod()
- Если хотим посмотреть, что происходит, можно вызвать тест в "разговорчивом" режиме: doctest.testmod(verbose=True)
#! /usr/bin/python
# -*- coding: utf-8 -*-
def mult(a,b):
"""
>>> mult(2,2)
4
"""
return a*b
if __name__ == "__main__":
import doctest
doctest.testmod()
#doctest.testmod(verbose=True)
Пример с тестами в отдельном файле
Все напсанное выше замечательно, но когда тестов становится больше, они начинают слишком загромождать код и появляется желание отделить их от кода. Это тоже предусмотрено. Можно вызвать функцию doctest.testfile("имя файла") и она выполнит тесты из внешнего файла. Ниже приведен пример такого подхода.
Файл с тестируемым кодом:
#! /usr/bin/python
# -*- coding: utf-8 -*-
def mult(a,b):
return a*b
if __name__ == "__main__":
import doctest
doctest.testfile("test.txt")
#doctest.testfile("test.txt",verbose=True)
Файл тестов:
Тестирование функции mult(a,b)
>>> from test_in_other_file import mult
>>> mult(2,3)
6
Комментариев нет:
Отправить комментарий