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

Поделиться
HTML-код
  • Опубликовано: 6 ноя 2024

Комментарии • 71

  • @vandriichuk
    @vandriichuk 3 месяца назад

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

  • @АлександрМарков-э4ю
    @АлександрМарков-э4ю 3 года назад +11

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

    • @PythonRussian
      @PythonRussian  3 года назад +2

      благодарю, будем и дальше стараться

  • @nohtyp_gniyduts838
    @nohtyp_gniyduts838 2 года назад +3

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

    • @PythonRussian
      @PythonRussian  2 года назад +1

      с тестированием вообще туго, мало где его вообще преподают, обычно по верхам просто проходят.

  • @Kostya_kzn
    @Kostya_kzn 2 года назад +2

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

  • @Quimorax
    @Quimorax 3 года назад +7

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

    • @PythonRussian
      @PythonRussian  3 года назад +5

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

    • @PythonRussian
      @PythonRussian  3 года назад +2

      ruclips.net/video/YD7aYJh3k-w/видео.html

  • @dailyvideo1593
    @dailyvideo1593 2 года назад +5

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

    • @barma1309
      @barma1309 2 года назад

      да тут и спонсировать не грех

  • @ВладБеляков-щ6р
    @ВладБеляков-щ6р 3 месяца назад +1

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

  • @ЕВЯ-о3м
    @ЕВЯ-о3м 2 года назад +1

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

    • @PythonRussian
      @PythonRussian  2 года назад

      важно чтобы прижилась сама суть проверять свой код, не обязательно ассертами или до написания кода, хоть как-нибудь. Начнешь писать тесты -начнешь лучше писать код.

  • @beatrixx_kiddo
    @beatrixx_kiddo Год назад +2

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

    • @andrey730
      @andrey730 Год назад

      Да, тоже не очень понял разъяснение )

    • @Прогулкивокругсвета-ф2ю
      @Прогулкивокругсвета-ф2ю 2 месяца назад

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

  • @PythonRussian
    @PythonRussian  3 года назад +1

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

    • @Pasha_Laborant
      @Pasha_Laborant 3 года назад +1

      картинка хорошая, звук требует доработки. На киберфоруме комментарий об этом оставил

    • @PythonRussian
      @PythonRussian  3 года назад

      @@Pasha_Laborant понял, подумаю насчет нового микрофона, мой совсем древний.

    • @api-nsk
      @api-nsk 3 года назад

      в обс есть шумоподавление. Добавляется в пару кликов без установки чего-либо

  • @glasderes
    @glasderes Год назад

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

  • @zelenchuk.serhii
    @zelenchuk.serhii 2 года назад

    Сильно! Благодарю за видео!

  • @y18kotov
    @y18kotov 2 года назад

    Большое спасибо автору!

  • @future_design_3d
    @future_design_3d 2 года назад +1

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

    • @PythonRussian
      @PythonRussian  2 года назад +4

      посмотри мой видос по комбинациям клавиш. Контрол+D это дублировать строку ниже, если я верно тебя понял.

  • @МарияКожевникова-ц3з
    @МарияКожевникова-ц3з 10 месяцев назад

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

  • @alexeykolodochkin5826
    @alexeykolodochkin5826 3 года назад

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

  • @ВеселыйРоджер-н7ы
    @ВеселыйРоджер-н7ы 2 года назад +1

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

  • @nikulin7944
    @nikulin7944 2 года назад

    Спасибо за труд! ))

  • @denissavast
    @denissavast 3 года назад

    Успехов Вам !

  • @Rustik702
    @Rustik702 Год назад

    Благодарю, очень полезно.

  • @Quimorax
    @Quimorax 3 года назад +1

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

    • @PythonRussian
      @PythonRussian  3 года назад

      я бы не советовал, к тому же у ассерта не понятное сообщение, все что ты поймешь сходу это место падения. Если в функции ты уверен, что аргумент не может скажем быть нан, то просто брось исключение. Тот же Бейдер например советует использовать ассерты в коде только если ты прямо 100% уверен что такой ситуации не может быть. Я же не советую. Ведь где то выше по коду ты можешь перехватывать то исключение что бросишь и нормально его обработать/залогировать, а главное понять (если оно читаемое с нормальным сообщением).

    • @Quimorax
      @Quimorax 3 года назад

      @@PythonRussian Спасибо)

  • @34alexed
    @34alexed 2 года назад

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

  • @EdGull
    @EdGull 3 года назад

    Спасибище огромное!!!

  • @АлександрЕноха
    @АлександрЕноха 3 года назад +1

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

    • @danbrown8104
      @danbrown8104 2 года назад

      Тоже не могу понять. Поле условия Week ставлю условие для Good , затем для Very Good - выдаёт ошибку теста на Very Good. Но если поменять условия местами (Very Good c Good) То никаких ошибок....

    • @Прогулкивокругсвета-ф2ю
      @Прогулкивокругсвета-ф2ю 2 месяца назад

      Потому что когда пароль подходит под условие с very good, оно так же выполняется и для условия с good, а если это условие с good стоит раньше, то и срабатывает он всегда, не давая возможности проверить условие с very good.
      Надеюсь не запутал 😅

  • @ДмитрийСергеев-л6г
    @ДмитрийСергеев-л6г 2 года назад

    Классно, спасибо!

  • @usernaum0018
    @usernaum0018 26 дней назад

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

    • @PythonRussian
      @PythonRussian  25 дней назад

      на полянке снимал)))шучу, микрофон такой был

    • @usernaum0018
      @usernaum0018 25 дней назад

      @@PythonRussian 😂😂

  • @AlexandrSpirit
    @AlexandrSpirit 3 года назад

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

    • @PythonRussian
      @PythonRussian  3 года назад +3

      на самом деле крайне важный вопрос. Скажу честно - писать в ТДД стиле у меня не выходит, то есть на каких то маленьких задачах, как на видео -еще ладно, а для продакшн-решений нет. То есть у меня нет успешного опыта написания тестов ДО кода. Если посмотришь мои следующие видео про юниттест и питест то там как раз подход, который я применяю для сложных решений: сначала накидывается некая канва решения, некий код, потом уже тесты, постепенно и код доводится до ума и тестов все больше. Но в любом случае код впереди тестов. Но это мой подход, я знаю что есть Кент Бек и другие умные граждане, которые хвалят ТДД, просто я честно не осилил.

    • @AlexandrSpirit
      @AlexandrSpirit 3 года назад

      @@PythonRussian
      Как по мне, в интернете не хватает подробного описания модульного тестирования rest api приложений.
      Как протестировать урл - понятно. Но как протестировать отдельные классы, методы, функции которые работают с БД через ORM Sqlalchemy ?
      Я так и не понял, зачем писать мидлваре с sessionmaker в фикстуру, когда уже есть готовый модуль. Т.е. просто импорт не работает, нужно именно все заново прописать в фикстуру

  • @ВладимирГригорьевич-у2р

    однозначно продолжения!

    • @PythonRussian
      @PythonRussian  3 года назад

      ruclips.net/video/YD7aYJh3k-w/видео.html

  • @maskon78
    @maskon78 2 года назад

    Вот спасибо!

  • @denissavast
    @denissavast 3 года назад

    Хорошая подача

  • @ТОП5-10-ю4г
    @ТОП5-10-ю4г 3 года назад

    Спасибо!

  • @jamjam3337
    @jamjam3337 Год назад

    👏👍

  • @RomanOleynik
    @RomanOleynik 2 года назад +1

    шум ((

  • @GROMOZEKA_NZT
    @GROMOZEKA_NZT Год назад

    Не понял пояснение с continue. Если any станет тру, то в любом случае мы перейдём к следующему набору

    • @Rustik702
      @Rustik702 Год назад

      Я так понимаю, что continue для вложенного цикла нужен, который в скобках, а не для внешнего с перебором наборов символов?

    • @GROMOZEKA_NZT
      @GROMOZEKA_NZT Год назад +1

      @@Rustik702 туда нельзя вписать continue, и вообще он не нужен в этом коде

    • @Rustik702
      @Rustik702 Год назад

      @@GROMOZEKA_NZT Значит если срабатывает any, то в любом случае переходим на следующий набор?

    • @GROMOZEKA_NZT
      @GROMOZEKA_NZT Год назад +1

      ​@@Rustik702там и так в цикле идёт перебор наборов. Что с continue, что без всё равно все наборы будут проверяться. Просто почитай что делает continue

  • @ХалилМаденбай
    @ХалилМаденбай 2 года назад

    Про OOP будете снимать курс?

    • @PythonRussian
      @PythonRussian  2 года назад

      не курс, а несколько видео наверное будет с моими мыслями по этому поводу.

  • @ВладимирГригорьевич-у2р

    а как запускать в пэйчарме с конкретной строки кода?

    • @PythonRussian
      @PythonRussian  3 года назад

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

    • @ВладимирГригорьевич-у2р
      @ВладимирГригорьевич-у2р 3 года назад

      @@PythonRussian не не, по сути мой вопрос был ламерский =) нашел ответ в "Комбинации клавиш и советы по работе в PyCharm ruclips.net/video/Jmkep5EbQQY/видео.html"

  • @ivanmain9659
    @ivanmain9659 3 года назад +1

    Микрофон ужасный, все шумит, слушать трудно

    • @PythonRussian
      @PythonRussian  3 года назад

      да, потом поправил звук, в следующих видео

  • @DrewBive
    @DrewBive 2 года назад

    ну и говнокод с логическими операторами

  • @Александр-г6о2н
    @Александр-г6о2н Год назад +1

    Класс! Спасибо!