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

  Рет қаралды 13,168

Python Russian

Python Russian

Күн бұрын

Пікірлер
@АлександрМарков-э4ю
@АлександрМарков-э4ю 3 жыл бұрын
Спасибо! Очень пригодилось. Очень хорошо и ясно излагаете. И темп речи то, что нужно! Подписался. Есть , что посмотреть!)
@PythonRussian
@PythonRussian 3 жыл бұрын
благодарю, будем и дальше стараться
@vandriichuk
@vandriichuk 4 ай бұрын
Нашел для себя Ваш канал про Python. Смотрю все - очень толково и грамотно объясняете. Большое спасибо!
@ВладБеляков-щ6р
@ВладБеляков-щ6р 4 ай бұрын
Спасибо за видео Заодно, узнао про all() и any()
@nohtyp_gniyduts838
@nohtyp_gniyduts838 2 жыл бұрын
Потрясающе. Почему на всех курсах никто не рассказывает про тестирование, используя его даже в самом начале обучения можно сберечь не мало своего времени и главное сразу учиться правильно организовывать рабочий процесс.
@PythonRussian
@PythonRussian 2 жыл бұрын
с тестированием вообще туго, мало где его вообще преподают, обычно по верхам просто проходят.
@Kostya_kzn
@Kostya_kzn 2 жыл бұрын
Вот и я перерос print() и втягиваюсь в тестирование. Спасибо за то что всё просто и понятно
@dailyvideo1593
@dailyvideo1593 2 жыл бұрын
Каждый видос - по кайфу. Однозначно подписка
@barma1309
@barma1309 2 жыл бұрын
да тут и спонсировать не грех
@PythonRussian
@PythonRussian 4 жыл бұрын
Друзья, попробовал другую программу для записи видео и увеличил шрифт, надеюсь жалоб на то, что ничего не видно больше не будет
@Pasha_Laborant
@Pasha_Laborant 4 жыл бұрын
картинка хорошая, звук требует доработки. На киберфоруме комментарий об этом оставил
@PythonRussian
@PythonRussian 4 жыл бұрын
@@Pasha_Laborant понял, подумаю насчет нового микрофона, мой совсем древний.
@api-nsk
@api-nsk 3 жыл бұрын
в обс есть шумоподавление. Добавляется в пару кликов без установки чего-либо
@Quimorax
@Quimorax 3 жыл бұрын
Классное видео, а самое главное, полезное. Было бы интересно посмотреть видео где Вы рассказываете про unit тесты и как ними пользоваться.
@PythonRussian
@PythonRussian 3 жыл бұрын
ок, добавил себе в список, это архиважная для любого программиста тема. Как говорится -если нет тестов, то код плохой. Надо подумать как это подать поинтереснее и чтобы не часовые видео, но чтобы и примеры показательные были.
@PythonRussian
@PythonRussian 3 жыл бұрын
kzbin.info/www/bejne/j3WakoyAnZieY9k
@Rustik702
@Rustik702 Жыл бұрын
Благодарю, очень полезно.
@y18kotov
@y18kotov 2 жыл бұрын
Большое спасибо автору!
@ЕВЯ-о3м
@ЕВЯ-о3м 2 жыл бұрын
Долго пробивался, но пробился. Пока прижилась тема в голове, пришлось пересмотреть раз десять. Но вот пошло, пошло. Тормоз скорее связан с невысоким уровнем моего питонизма в целом Будем исправлять. Спасибо
@PythonRussian
@PythonRussian 2 жыл бұрын
важно чтобы прижилась сама суть проверять свой код, не обязательно ассертами или до написания кода, хоть как-нибудь. Начнешь писать тесты -начнешь лучше писать код.
@beatrixx_kiddo
@beatrixx_kiddo Жыл бұрын
Спасибо. Хотелось бы заметить, что continue там не нужно.
@andrey730
@andrey730 Жыл бұрын
Да, тоже не очень понял разъяснение )
@Прогулкивокругсвета-ф2ю
@Прогулкивокругсвета-ф2ю 4 ай бұрын
Хотел сначало возмутиться почему не нужно, а потом пересмотрел код и понял что и правда в любом случае он после выполнения условия перейдет на следующую итерацию. Спасибо за замечание
@zelenchuk.serhii
@zelenchuk.serhii 2 жыл бұрын
Сильно! Благодарю за видео!
@EdGull
@EdGull 3 жыл бұрын
Спасибище огромное!!!
@nikulin7944
@nikulin7944 2 жыл бұрын
Спасибо за труд! ))
@glasderes
@glasderes Жыл бұрын
Я сверх новичок, и я использую +- два языка, c и python, я практически всегда использую асерты когда использую масивы, выход из масива = смерть особенно если это выход из масива на один элемент. Для людей которые не особо понимают как работает си, в си на изичах можно выйти за масив, в пк есть оперативная память, есть у нас в начале масив допустим 100 элементов и после него может идти переменная, и если мы выйдим за масив то мы заменем значение переменной, ошибки не будит, у нас просто программа будит неправильно работать, если выход из масива допустим за сеткой и обращаемся к 200 элементу то тогда винда начнёт ругаться Кста совет по решению задачей допустим с код ворса, часто бывает что есть алгоритм который приходит в голову но сложность там так себе, так вот я всегда проверяю второй алгоритм который достаточно сложный и требует знания в теории чисел или ещё в какой фигне, просто проверяя значения между двумя функций
@МарияКожевникова-ц3з
@МарияКожевникова-ц3з 11 ай бұрын
спасибо огромное, ваш опыт - супер, а то, что вы им делитесь, просто волшебно. но я допустила вольность, - лень писать код, и первые два условия + четвертое записала как if-elif, а третье - else.... просто я ленивая((((
@МарияКожевникова-ц3з
@МарияКожевникова-ц3з 11 ай бұрын
а ну да у вас то же самое на 19ой минуте))) и даже круче
@ВеселыйРоджер-н7ы
@ВеселыйРоджер-н7ы 2 жыл бұрын
Спасибо. Хороший материал, хорошая подача👍
@denissavast
@denissavast 4 жыл бұрын
Успехов Вам !
@future_design_3d
@future_design_3d 3 жыл бұрын
Крутые видосы! А какая комбинация клавиш в пайчарме чтоб скопировать строку в которой находится курсор (на 8й минуте, где писали ассерты) ?
@PythonRussian
@PythonRussian 3 жыл бұрын
посмотри мой видос по комбинациям клавиш. Контрол+D это дублировать строку ниже, если я верно тебя понял.
@АлександрЕноха
@АлександрЕноха 3 жыл бұрын
Почему если поменять условие на строках 19 и 17 местами получается ошибка,(до 18 минуты видео)? Если прогнать не через assert, а print, то получается что условия оба выполняются, но они (условия не равнозначны), как так выходит?
@danbrown8104
@danbrown8104 2 жыл бұрын
Тоже не могу понять. Поле условия Week ставлю условие для Good , затем для Very Good - выдаёт ошибку теста на Very Good. Но если поменять условия местами (Very Good c Good) То никаких ошибок....
@Прогулкивокругсвета-ф2ю
@Прогулкивокругсвета-ф2ю 4 ай бұрын
Потому что когда пароль подходит под условие с very good, оно так же выполняется и для условия с good, а если это условие с good стоит раньше, то и срабатывает он всегда, не давая возможности проверить условие с very good. Надеюсь не запутал 😅
@Quimorax
@Quimorax 3 жыл бұрын
Как Вы сказали, assert не нужно использовать в своём коде, только в тестах, то есть использование assert в функциях, например для проверки каких-то граничных условий, не является хорошей практикой? Просто недавно лазил в исходном коде Python и заметил, что так иногда используется assert и стало интересно стоит ли так делать.
@PythonRussian
@PythonRussian 3 жыл бұрын
я бы не советовал, к тому же у ассерта не понятное сообщение, все что ты поймешь сходу это место падения. Если в функции ты уверен, что аргумент не может скажем быть нан, то просто брось исключение. Тот же Бейдер например советует использовать ассерты в коде только если ты прямо 100% уверен что такой ситуации не может быть. Я же не советую. Ведь где то выше по коду ты можешь перехватывать то исключение что бросишь и нормально его обработать/залогировать, а главное понять (если оно читаемое с нормальным сообщением).
@Quimorax
@Quimorax 3 жыл бұрын
@@PythonRussian Спасибо)
@ДмитрийСергеев-л6г
@ДмитрийСергеев-л6г 2 жыл бұрын
Классно, спасибо!
@34alexed
@34alexed 3 жыл бұрын
супер, больше материалов на тему тестирования
@ТОП5-10-ю4г
@ТОП5-10-ю4г 3 жыл бұрын
Спасибо!
@jamjam3337
@jamjam3337 Жыл бұрын
👏👍
@ВладимирГригорьевич-у2р
@ВладимирГригорьевич-у2р 4 жыл бұрын
однозначно продолжения!
@PythonRussian
@PythonRussian 3 жыл бұрын
kzbin.info/www/bejne/j3WakoyAnZieY9k
@maskon78
@maskon78 2 жыл бұрын
Вот спасибо!
@ХалилМаденбай
@ХалилМаденбай 3 жыл бұрын
Про OOP будете снимать курс?
@PythonRussian
@PythonRussian 3 жыл бұрын
не курс, а несколько видео наверное будет с моими мыслями по этому поводу.
@AlexandrSpirit
@AlexandrSpirit 3 жыл бұрын
Вот хорошо бы описать подход к разработке приложения с тестированием. Что в первую очередь делать? Читал, что нужно сначала писать тест под фичу, а затем писать реализацию в приложении. Как быть?
@PythonRussian
@PythonRussian 3 жыл бұрын
на самом деле крайне важный вопрос. Скажу честно - писать в ТДД стиле у меня не выходит, то есть на каких то маленьких задачах, как на видео -еще ладно, а для продакшн-решений нет. То есть у меня нет успешного опыта написания тестов ДО кода. Если посмотришь мои следующие видео про юниттест и питест то там как раз подход, который я применяю для сложных решений: сначала накидывается некая канва решения, некий код, потом уже тесты, постепенно и код доводится до ума и тестов все больше. Но в любом случае код впереди тестов. Но это мой подход, я знаю что есть Кент Бек и другие умные граждане, которые хвалят ТДД, просто я честно не осилил.
@AlexandrSpirit
@AlexandrSpirit 3 жыл бұрын
@@PythonRussian Как по мне, в интернете не хватает подробного описания модульного тестирования rest api приложений. Как протестировать урл - понятно. Но как протестировать отдельные классы, методы, функции которые работают с БД через ORM Sqlalchemy ? Я так и не понял, зачем писать мидлваре с sessionmaker в фикстуру, когда уже есть готовый модуль. Т.е. просто импорт не работает, нужно именно все заново прописать в фикстуру
@GROMOZEKA_NZT
@GROMOZEKA_NZT Жыл бұрын
Не понял пояснение с continue. Если any станет тру, то в любом случае мы перейдём к следующему набору
@Rustik702
@Rustik702 Жыл бұрын
Я так понимаю, что continue для вложенного цикла нужен, который в скобках, а не для внешнего с перебором наборов символов?
@GROMOZEKA_NZT
@GROMOZEKA_NZT Жыл бұрын
@@Rustik702 туда нельзя вписать continue, и вообще он не нужен в этом коде
@Rustik702
@Rustik702 Жыл бұрын
@@GROMOZEKA_NZT Значит если срабатывает any, то в любом случае переходим на следующий набор?
@GROMOZEKA_NZT
@GROMOZEKA_NZT Жыл бұрын
​@@Rustik702там и так в цикле идёт перебор наборов. Что с continue, что без всё равно все наборы будут проверяться. Просто почитай что делает continue
@usernaum0018
@usernaum0018 2 ай бұрын
ручей на заднем фоне подбадривает кстати;))
@PythonRussian
@PythonRussian 2 ай бұрын
на полянке снимал)))шучу, микрофон такой был
@usernaum0018
@usernaum0018 2 ай бұрын
@@PythonRussian 😂😂
@alexeykolodochkin5826
@alexeykolodochkin5826 3 жыл бұрын
Тесты и правда доказательство, причем, единственное.
@denissavast
@denissavast 4 жыл бұрын
Хорошая подача
@ВладимирГригорьевич-у2р
@ВладимирГригорьевич-у2р 4 жыл бұрын
а как запускать в пэйчарме с конкретной строки кода?
@PythonRussian
@PythonRussian 3 жыл бұрын
боюсь что никак, наверное только закомментировать все до нужной. А вот если у тебя будут полноценные тесты, а не ассерты, то там можно с любого теста запускать или просто только 1 тест.
@ВладимирГригорьевич-у2р
@ВладимирГригорьевич-у2р 3 жыл бұрын
@@PythonRussian не не, по сути мой вопрос был ламерский =) нашел ответ в "Комбинации клавиш и советы по работе в PyCharm kzbin.info/www/bejne/gJ7OlqNreseEh7s"
@RomanOleynik
@RomanOleynik 2 жыл бұрын
шум ((
@ivanmain9659
@ivanmain9659 3 жыл бұрын
Микрофон ужасный, все шумит, слушать трудно
@PythonRussian
@PythonRussian 3 жыл бұрын
да, потом поправил звук, в следующих видео
@DrewBive
@DrewBive 3 жыл бұрын
ну и говнокод с логическими операторами
@Александр-г6о2н
@Александр-г6о2н Жыл бұрын
Класс! Спасибо!
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН
The evil clown plays a prank on the angel
00:39
超人夫妇
Рет қаралды 53 МЛН
Частые ошибки начинающих питонистов
41:43
КАК УСТРОЕН TCP/IP?
31:32
Alek OS
Рет қаралды 244 М.
Multiprocessing: используем все ядра
27:50
Python Russian
Рет қаралды 4,1 М.
Основное оружие питониста: Listcomps и Genexp
52:55
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН