Потрясающе. Почему на всех курсах никто не рассказывает про тестирование, используя его даже в самом начале обучения можно сберечь не мало своего времени и главное сразу учиться правильно организовывать рабочий процесс.
ок, добавил себе в список, это архиважная для любого программиста тема. Как говорится -если нет тестов, то код плохой. Надо подумать как это подать поинтереснее и чтобы не часовые видео, но чтобы и примеры показательные были.
Долго пробивался, но пробился. Пока прижилась тема в голове, пришлось пересмотреть раз десять. Но вот пошло, пошло. Тормоз скорее связан с невысоким уровнем моего питонизма в целом Будем исправлять. Спасибо
важно чтобы прижилась сама суть проверять свой код, не обязательно ассертами или до написания кода, хоть как-нибудь. Начнешь писать тесты -начнешь лучше писать код.
Хотел сначало возмутиться почему не нужно, а потом пересмотрел код и понял что и правда в любом случае он после выполнения условия перейдет на следующую итерацию. Спасибо за замечание
Я сверх новичок, и я использую +- два языка, c и python, я практически всегда использую асерты когда использую масивы, выход из масива = смерть особенно если это выход из масива на один элемент. Для людей которые не особо понимают как работает си, в си на изичах можно выйти за масив, в пк есть оперативная память, есть у нас в начале масив допустим 100 элементов и после него может идти переменная, и если мы выйдим за масив то мы заменем значение переменной, ошибки не будит, у нас просто программа будит неправильно работать, если выход из масива допустим за сеткой и обращаемся к 200 элементу то тогда винда начнёт ругаться Кста совет по решению задачей допустим с код ворса, часто бывает что есть алгоритм который приходит в голову но сложность там так себе, так вот я всегда проверяю второй алгоритм который достаточно сложный и требует знания в теории чисел или ещё в какой фигне, просто проверяя значения между двумя функций
спасибо огромное, ваш опыт - супер, а то, что вы им делитесь, просто волшебно. но я допустила вольность, - лень писать код, и первые два условия + четвертое записала как if-elif, а третье - else.... просто я ленивая((((
Почему если поменять условие на строках 19 и 17 местами получается ошибка,(до 18 минуты видео)? Если прогнать не через assert, а print, то получается что условия оба выполняются, но они (условия не равнозначны), как так выходит?
Тоже не могу понять. Поле условия Week ставлю условие для Good , затем для Very Good - выдаёт ошибку теста на Very Good. Но если поменять условия местами (Very Good c Good) То никаких ошибок....
Потому что когда пароль подходит под условие с very good, оно так же выполняется и для условия с good, а если это условие с good стоит раньше, то и срабатывает он всегда, не давая возможности проверить условие с very good. Надеюсь не запутал 😅
Как Вы сказали, assert не нужно использовать в своём коде, только в тестах, то есть использование assert в функциях, например для проверки каких-то граничных условий, не является хорошей практикой? Просто недавно лазил в исходном коде Python и заметил, что так иногда используется assert и стало интересно стоит ли так делать.
я бы не советовал, к тому же у ассерта не понятное сообщение, все что ты поймешь сходу это место падения. Если в функции ты уверен, что аргумент не может скажем быть нан, то просто брось исключение. Тот же Бейдер например советует использовать ассерты в коде только если ты прямо 100% уверен что такой ситуации не может быть. Я же не советую. Ведь где то выше по коду ты можешь перехватывать то исключение что бросишь и нормально его обработать/залогировать, а главное понять (если оно читаемое с нормальным сообщением).
Вот хорошо бы описать подход к разработке приложения с тестированием. Что в первую очередь делать? Читал, что нужно сначала писать тест под фичу, а затем писать реализацию в приложении. Как быть?
на самом деле крайне важный вопрос. Скажу честно - писать в ТДД стиле у меня не выходит, то есть на каких то маленьких задачах, как на видео -еще ладно, а для продакшн-решений нет. То есть у меня нет успешного опыта написания тестов ДО кода. Если посмотришь мои следующие видео про юниттест и питест то там как раз подход, который я применяю для сложных решений: сначала накидывается некая канва решения, некий код, потом уже тесты, постепенно и код доводится до ума и тестов все больше. Но в любом случае код впереди тестов. Но это мой подход, я знаю что есть Кент Бек и другие умные граждане, которые хвалят ТДД, просто я честно не осилил.
@@PythonRussian Как по мне, в интернете не хватает подробного описания модульного тестирования rest api приложений. Как протестировать урл - понятно. Но как протестировать отдельные классы, методы, функции которые работают с БД через ORM Sqlalchemy ? Я так и не понял, зачем писать мидлваре с sessionmaker в фикстуру, когда уже есть готовый модуль. Т.е. просто импорт не работает, нужно именно все заново прописать в фикстуру
боюсь что никак, наверное только закомментировать все до нужной. А вот если у тебя будут полноценные тесты, а не ассерты, то там можно с любого теста запускать или просто только 1 тест.
@@PythonRussian не не, по сути мой вопрос был ламерский =) нашел ответ в "Комбинации клавиш и советы по работе в PyCharm ua-cam.com/video/Jmkep5EbQQY/v-deo.html"
Спасибо! Очень пригодилось. Очень хорошо и ясно излагаете. И темп речи то, что нужно! Подписался. Есть , что посмотреть!)
благодарю, будем и дальше стараться
Нашел для себя Ваш канал про Python. Смотрю все - очень толково и грамотно объясняете. Большое спасибо!
Спасибо за видео
Заодно, узнао про all() и any()
Потрясающе. Почему на всех курсах никто не рассказывает про тестирование, используя его даже в самом начале обучения можно сберечь не мало своего времени и главное сразу учиться правильно организовывать рабочий процесс.
с тестированием вообще туго, мало где его вообще преподают, обычно по верхам просто проходят.
Вот и я перерос print() и втягиваюсь в тестирование. Спасибо за то что всё просто и понятно
Каждый видос - по кайфу. Однозначно подписка
да тут и спонсировать не грех
Друзья, попробовал другую программу для записи видео и увеличил шрифт, надеюсь жалоб на то, что ничего не видно больше не будет
картинка хорошая, звук требует доработки. На киберфоруме комментарий об этом оставил
@@Pasha_Laborant понял, подумаю насчет нового микрофона, мой совсем древний.
в обс есть шумоподавление. Добавляется в пару кликов без установки чего-либо
Классное видео, а самое главное, полезное. Было бы интересно посмотреть видео где Вы рассказываете про unit тесты и как ними пользоваться.
ок, добавил себе в список, это архиважная для любого программиста тема. Как говорится -если нет тестов, то код плохой. Надо подумать как это подать поинтереснее и чтобы не часовые видео, но чтобы и примеры показательные были.
ua-cam.com/video/YD7aYJh3k-w/v-deo.html
Благодарю, очень полезно.
Большое спасибо автору!
Долго пробивался, но пробился. Пока прижилась тема в голове, пришлось пересмотреть раз десять. Но вот пошло, пошло. Тормоз скорее связан с невысоким уровнем моего питонизма в целом Будем исправлять. Спасибо
важно чтобы прижилась сама суть проверять свой код, не обязательно ассертами или до написания кода, хоть как-нибудь. Начнешь писать тесты -начнешь лучше писать код.
Спасибо. Хотелось бы заметить, что continue там не нужно.
Да, тоже не очень понял разъяснение )
Хотел сначало возмутиться почему не нужно, а потом пересмотрел код и понял что и правда в любом случае он после выполнения условия перейдет на следующую итерацию. Спасибо за замечание
Сильно! Благодарю за видео!
Спасибище огромное!!!
Спасибо за труд! ))
Я сверх новичок, и я использую +- два языка, c и python, я практически всегда использую асерты когда использую масивы, выход из масива = смерть особенно если это выход из масива на один элемент.
Для людей которые не особо понимают как работает си, в си на изичах можно выйти за масив, в пк есть оперативная память, есть у нас в начале масив допустим 100 элементов и после него может идти переменная, и если мы выйдим за масив то мы заменем значение переменной, ошибки не будит, у нас просто программа будит неправильно работать, если выход из масива допустим за сеткой и обращаемся к 200 элементу то тогда винда начнёт ругаться
Кста совет по решению задачей допустим с код ворса, часто бывает что есть алгоритм который приходит в голову но сложность там так себе, так вот я всегда проверяю второй алгоритм который достаточно сложный и требует знания в теории чисел или ещё в какой фигне, просто проверяя значения между двумя функций
спасибо огромное, ваш опыт - супер, а то, что вы им делитесь, просто волшебно. но я допустила вольность, - лень писать код, и первые два условия + четвертое записала как if-elif, а третье - else.... просто я ленивая((((
а ну да у вас то же самое на 19ой минуте))) и даже круче
Спасибо. Хороший материал, хорошая подача👍
Успехов Вам !
Крутые видосы! А какая комбинация клавиш в пайчарме чтоб скопировать строку в которой находится курсор (на 8й минуте, где писали ассерты) ?
посмотри мой видос по комбинациям клавиш. Контрол+D это дублировать строку ниже, если я верно тебя понял.
Почему если поменять условие на строках 19 и 17 местами получается ошибка,(до 18 минуты видео)? Если прогнать не через assert, а print, то получается что условия оба выполняются, но они (условия не равнозначны), как так выходит?
Тоже не могу понять. Поле условия Week ставлю условие для Good , затем для Very Good - выдаёт ошибку теста на Very Good. Но если поменять условия местами (Very Good c Good) То никаких ошибок....
Потому что когда пароль подходит под условие с very good, оно так же выполняется и для условия с good, а если это условие с good стоит раньше, то и срабатывает он всегда, не давая возможности проверить условие с very good.
Надеюсь не запутал 😅
Как Вы сказали, assert не нужно использовать в своём коде, только в тестах, то есть использование assert в функциях, например для проверки каких-то граничных условий, не является хорошей практикой? Просто недавно лазил в исходном коде Python и заметил, что так иногда используется assert и стало интересно стоит ли так делать.
я бы не советовал, к тому же у ассерта не понятное сообщение, все что ты поймешь сходу это место падения. Если в функции ты уверен, что аргумент не может скажем быть нан, то просто брось исключение. Тот же Бейдер например советует использовать ассерты в коде только если ты прямо 100% уверен что такой ситуации не может быть. Я же не советую. Ведь где то выше по коду ты можешь перехватывать то исключение что бросишь и нормально его обработать/залогировать, а главное понять (если оно читаемое с нормальным сообщением).
@@PythonRussian Спасибо)
Классно, спасибо!
супер, больше материалов на тему тестирования
Спасибо!
👏👍
однозначно продолжения!
ua-cam.com/video/YD7aYJh3k-w/v-deo.html
Вот спасибо!
Про OOP будете снимать курс?
не курс, а несколько видео наверное будет с моими мыслями по этому поводу.
Вот хорошо бы описать подход к разработке приложения с тестированием.
Что в первую очередь делать?
Читал, что нужно сначала писать тест под фичу, а затем писать реализацию в приложении.
Как быть?
на самом деле крайне важный вопрос. Скажу честно - писать в ТДД стиле у меня не выходит, то есть на каких то маленьких задачах, как на видео -еще ладно, а для продакшн-решений нет. То есть у меня нет успешного опыта написания тестов ДО кода. Если посмотришь мои следующие видео про юниттест и питест то там как раз подход, который я применяю для сложных решений: сначала накидывается некая канва решения, некий код, потом уже тесты, постепенно и код доводится до ума и тестов все больше. Но в любом случае код впереди тестов. Но это мой подход, я знаю что есть Кент Бек и другие умные граждане, которые хвалят ТДД, просто я честно не осилил.
@@PythonRussian
Как по мне, в интернете не хватает подробного описания модульного тестирования rest api приложений.
Как протестировать урл - понятно. Но как протестировать отдельные классы, методы, функции которые работают с БД через ORM Sqlalchemy ?
Я так и не понял, зачем писать мидлваре с sessionmaker в фикстуру, когда уже есть готовый модуль. Т.е. просто импорт не работает, нужно именно все заново прописать в фикстуру
Не понял пояснение с continue. Если any станет тру, то в любом случае мы перейдём к следующему набору
Я так понимаю, что continue для вложенного цикла нужен, который в скобках, а не для внешнего с перебором наборов символов?
@@Rustik702 туда нельзя вписать continue, и вообще он не нужен в этом коде
@@GROMOZEKA_NZT Значит если срабатывает any, то в любом случае переходим на следующий набор?
@@Rustik702там и так в цикле идёт перебор наборов. Что с continue, что без всё равно все наборы будут проверяться. Просто почитай что делает continue
ручей на заднем фоне подбадривает кстати;))
на полянке снимал)))шучу, микрофон такой был
@@PythonRussian 😂😂
Тесты и правда доказательство, причем, единственное.
Хорошая подача
а как запускать в пэйчарме с конкретной строки кода?
боюсь что никак, наверное только закомментировать все до нужной. А вот если у тебя будут полноценные тесты, а не ассерты, то там можно с любого теста запускать или просто только 1 тест.
@@PythonRussian не не, по сути мой вопрос был ламерский =) нашел ответ в "Комбинации клавиш и советы по работе в PyCharm ua-cam.com/video/Jmkep5EbQQY/v-deo.html"
шум ((
Микрофон ужасный, все шумит, слушать трудно
да, потом поправил звук, в следующих видео
ну и говнокод с логическими операторами
Класс! Спасибо!