Всегда проверяй свой код. Простое тестирование с assert

preview_player
Показать описание
Любой программист на любом языке программирования обязан проверять свой код. "Пацан накодировал -пацан протестировал". Только тесты являются доказательством того, что ваш код работает, а вовсе не то, что вы на своей машине его запускали!
В любой ситуации пиши тесты, в любой непонятной ситуации запускай тесты. Тесты это не только хороший тон, но еще и спокойный сон программиста и огромный плюс на собеседовании.
ВНИМАНИЕ - не используйте ассерты в коде самого приложения! Только в тестах и вот таких проверках.

Стандартный алгоритм действий:
1) внимательно читаем задачу, многие ломаются еще на этом этапе =)
2) пишем заготовку функции с аннотациями, реализацию не пишем
3) пишем наши проверки, тщательно продумываем крайние случаи, что может прийти на вход. Если есть примеры ввода-вывода в задаче то добавляем их в проверки
4) реализуем код, как угодно плохо, главная цель -тесты все должны работать. Кстати по мере опыта код с самого начала буде не таким и страшным
5) если в ходе реализации или проверок находим слабые места в тестах, то добавляем новые проверки
6) рефакторим код, делаем его короче, понятнее, читаемее
7) профит!

Польза от тестов:
1) есть доказательство что код работает (пусть и на ограниченном наборе значений)
2) поэтапно в реальном времени видим прогресс (все больше тестов выполняется)
3) при готовом наборе имеем возможность безопасно рефакторить код
4) можем поизвращаться, применить разные хитрые уловки, главное все время запускать тесты

Это все работает и для больших проектов, правда там уже не на простых ассертах это реализуется, но принцип все тот же - сеть безопасности!

Присоединяйтесь к помощи каналу, будет интересно)
✔️Юмани 410011506612886

Будь первым везде и всегда, включай уведомления о новых выпусках 🔔

Смотри там где удобно🤩

#Python #PythonRussian #PyCharm
Рекомендации по теме
Комментарии
Автор

Спасибо! Очень пригодилось. Очень хорошо и ясно излагаете. И темп речи то, что нужно! Подписался. Есть, что посмотреть!)

АлександрМарков-эю
Автор

Нашел для себя Ваш канал про Python. Смотрю все - очень толково и грамотно объясняете. Большое спасибо!

vandriichuk
Автор

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

nohtyp_gniyduts
Автор

Вот и я перерос print() и втягиваюсь в тестирование. Спасибо за то что всё просто и понятно

Kostya_kzn
Автор

Спасибо за видео
Заодно, узнао про all() и any()

ВладБеляков-щр
Автор

Друзья, попробовал другую программу для записи видео и увеличил шрифт, надеюсь жалоб на то, что ничего не видно больше не будет

PythonRussian
Автор

Каждый видос - по кайфу. Однозначно подписка

dailyvideo
Автор

Классное видео, а самое главное, полезное. Было бы интересно посмотреть видео где Вы рассказываете про unit тесты и как ними пользоваться.

Quimorax
Автор

Спасибо. Хотелось бы заметить, что continue там не нужно.

beatrixx_kiddo
Автор

Долго пробивался, но пробился. Пока прижилась тема в голове, пришлось пересмотреть раз десять. Но вот пошло, пошло. Тормоз скорее связан с невысоким уровнем моего питонизма в целом Будем исправлять. Спасибо

ЕВЯ-ом
Автор

Я сверх новичок, и я использую +- два языка, c и python, я практически всегда использую асерты когда использую масивы, выход из масива = смерть особенно если это выход из масива на один элемент.
Для людей которые не особо понимают как работает си, в си на изичах можно выйти за масив, в пк есть оперативная память, есть у нас в начале масив допустим 100 элементов и после него может идти переменная, и если мы выйдим за масив то мы заменем значение переменной, ошибки не будит, у нас просто программа будит неправильно работать, если выход из масива допустим за сеткой и обращаемся к 200 элементу то тогда винда начнёт ругаться

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

glasderes
Автор

спасибо огромное, ваш опыт - супер, а то, что вы им делитесь, просто волшебно. но я допустила вольность, - лень писать код, и первые два условия + четвертое записала как if-elif, а третье - else.... просто я ленивая((((

МарияКожевникова-цз
Автор

супер, больше материалов на тему тестирования

alexed
Автор

Спасибо. Хороший материал, хорошая подача👍

ВеселыйРоджер-ны
Автор

Как Вы сказали, assert не нужно использовать в своём коде, только в тестах, то есть использование assert в функциях, например для проверки каких-то граничных условий, не является хорошей практикой? Просто недавно лазил в исходном коде Python и заметил, что так иногда используется assert и стало интересно стоит ли так делать.

Quimorax
Автор

Крутые видосы! А какая комбинация клавиш в пайчарме чтоб скопировать строку в которой находится курсор (на 8й минуте, где писали ассерты) ?

future_design_d
Автор

Тесты и правда доказательство, причем, единственное.

alexeykolodochkin
Автор

Почему если поменять условие на строках 19 и 17 местами получается ошибка, (до 18 минуты видео)? Если прогнать не через assert, а print, то получается что условия оба выполняются, но они (условия не равнозначны), как так выходит?

АлександрЕноха
Автор

ручей на заднем фоне подбадривает кстати;))

usernaum
Автор

Вот хорошо бы описать подход к разработке приложения с тестированием.
Что в первую очередь делать?
Читал, что нужно сначала писать тест под фичу, а затем писать реализацию в приложении.
Как быть?

AlexandrSpirit