How to Think Like a Computer Scientist: Learning with Python 2nd Edition. / Как стать программистом: учимся вместе с Python. Второе издание.: Chapter 5 Fruitful functions
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
В python есть встроенный модуль doctest предназначенный для unit-тестирования. Доктектсы в тройных кавычках могут быть написаны в начале тела функции или скрипта. czech 10.07.10 в 10:08 |
|
|
Модуль doctest автоматически выполняет любое выражение начинающеюся с >>> и сравнивает следующую строку с выводом интерпритатора Trashman 24.07.10 в 22:02 |
||
|
Чтобы увидеть как это работает, поместите следующее в скрипт с именем myfunctions.py : Trashman 24.07.10 в 22:04 |
||
|
def is_divisible_by_2_or_5(n): Trashman 24.07.10 в 22:05 |
||
|
if __name__ == '__main__': Trashman 24.07.10 в 22:06 |
||
|
Последние три строчки запускают doctest. Поместите их в конец любого файла, содержащий doctest. Мы объясним как они работают в Главе 10, когда мы будет обсуждать модули. Trashman 24.07.10 в 22:10 |
||
|
Запуская скрипт вы получите следующий результат: Trashman 24.07.10 в 22:16 |
||
|
$ python myfunctions.py Trashman 24.07.10 в 22:17 |
||
|
Это пример проваленного теста. Тест говорит: если вы вызываете is_divisible_by_2_or_5(8) результат должен быть True. Так как is_divisible_by_2_or_5 написан без возврата чего либо, тест проваливается, и doctest сообщает нам что ожидается True, но ничего не получено. Trashman 24.07.10 в 22:26 |
||
|
Мы можем сдать этот тест возвратив True: Trashman 24.07.10 в 22:28 |
||
|
def is_divisible_by_2_or_5(n): Trashman 24.07.10 в 22:28 |
||
|
if __name__ == '__main__': Trashman 24.07.10 в 22:29 |
||
