Вопрос №55153 от пользователя Denys Bondarenko в уроке «Тесты через документацию (Doctest)», курс «Python: Автоматическое тестирование»

Denys Bondarenko

screenshot подскажите пожалуйста, почему вызовы функции не добавляют их в описание? Пробовал и без предворительных комментариев, все равно ничего не добавляется:/

3 0

Aleksei Pirogov

почему вызовы функции не добавляют их в описание?

Кого "их" должны "добавлять вызовы функций" и куда добавлять? Что вы подразумеваете под "предварительными комментариями"?

Если вы спрашиваете о doctests, то они не запускаются при вызове функций, в документации которых они написаны. И не должны запускаться. doctests, как и любые другие тесты, запускаются строго по требованию.

В вашем модуле solution.py есть ровно один doctest в строке документации к модулю. Он запускается, если модуль выполнить как скрипт, то есть выполнить python solution.py - именно при таком запуске вызывается doctest.testmod().

0

Denys Bondarenko

Aleksei Pirogov, не правильно понял с теории строку

Сделав нужные вызовы, мы просто добавляем их в описание функции:

# Внутри example.py определена функция reverse(), которая переворачивает строку
python -i example.py
>> reverse('')
''
>> reverse('Hexlet')
'telxeH'

понял, что после вызова функции reverse , сам вызов и результат автоматоматически запишется как тест. Потом дошло, что все нужно копировать )

0

Aleksei Pirogov

Потом дошло, что все нужно копировать )

Лучше не копировать, а написать заранее! Если получается, конечно :)

Когда вы копируете примеры в docstring, работая с уже готовой функции, то вы только защищаетесь от регресса - и то лишь при наличии достаточного количества примеров. И документация лучше становится, само собой.

А если вы сначала несколько примеров работы функции напишете, а только потом её реализуете, то это поможет вам закрепить и сохранить изначальную идею. Если сразу писать код, то может получиться не совсем то, что было запланировано: где-то забудете какие-то частные случаи, где-то захочется написать покороче или "пока оставить как есть". Заранее же подготовленные тесты и лениться не дают, и от забывчивости спасают - опять же, если примеров достаточно!

1

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
1 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
1 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
1 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
1 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
1 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
1 июня 5 месяцев