Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 279

FAILED (failures=1)

Выглядит так, будто первая двойная кавычка смутила даже функцию 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