Выглядит так, будто первая двойная кавычка смутила даже функцию capwords,
нашего текущего фаворита. Она попробовала увеличить символ " и уменьшить все
остальное (You're). Нам также нужно проверить, оставила ли функция-увеличитель
остальную часть строки нетронутой.
Люди, которые зарабатывают тестированием на жизнь, способны замечать такие
крайние случаи, но разработчики часто забывают о таких ситуациях, когда речь
идет об их собственном коде.
Пакет unittest предоставляет небольшой, но мощный набор операторов, по-
зволяющих вам проверять значения, убеждаться в том, что вы имеете необходимый
класс, определять, сгенерировалась ли ошибка, и т. д.
Пакет doctest
Вторым пакетом для тестирования стандартной библиотеки является doctest
(http://bit.ly/py-doctest). С помощью этого пакета вы можете писать тесты внутри
строки документации, которые и сами будут служить документацией. Он выглядит
как интерактивный интерпретатор: символы >>>, за которыми следует вызов, а за-
тем результаты в следующей строке. Вы можете запустить некоторые тесты в ин-
терактивном интерпретаторе и просто вставить результат в свой тестовый файл.
Мы модифицируем файл cap.py (убрав тот проблемный тест с кавычками):
def just_do_it(text):
"""
>>> just_do_it('duck')
'Duck'
Тестируем код
359
>>> just_do_it('a veritable flock of ducks')
'A Veritable Flock Of Ducks'
>>> just_do_it("I'm fresh out of ideas")
"I'm Fresh Out Of Ideas"
"""
from string import capwords
return capwords(text)
if __name__ == '__main__':
import doctest
doctest.testmod()
Когда вы его запустите, в случае успеха он не выведет ничего:
$ python cap.py
Запустите его с опцией -v (verbose, verbose), чтобы увидеть, что произошло на
самом деле:
$ python cap.py -v
Trying:
just_do_it('duck')
Expecting:
'Duck'
ok
Trying:
just_do_it('a veritable flock of ducks')
Expecting:
'A Veritable Flock Of Ducks'
ok