Комментарии:
Как фреймворк видит методи, которие начинаются на test_?
Ответитьgenius, ты показал максимально обсосанный пример, то как работает программа должно быть определенно на этапе проектирования приложения, на этапе получения данных от пользователя должна быть проработана предварительная валидация данных. Если приводить примеры тестирования, то можно выделить пару примеров, например тестировать поведение функции, при вводе условно верных данных, например вы пишете фикцию для каких то вычислений, она безумно сложная и занимает 20 строк кода, и выполняется секунд пять, вы её тестируете сопоставляя с заведомо верными данными, но программист B, решает что данная функция является узким местом программы из за частого его вызова программа тратит много времени на вычисления. После внесения корректировок программистом B программа начала работать и правда быстрее, но благодаря тестам может всплыть что она выполняет задачу с ошибкой, например при вводе отрицательных чисел или float или 0. Так что во многом тесты помогают разработчикам быть уверенным что их код работает так как ожидается.
Но есть второе применение которое так же очень важное, например для поддержки приложения, мой пример, я написал парсер для загрузки аудиокниг, и через 2 месяца решил скачать себе новую книгу, по итогу загрузчик ложился с ошибкой в о время загрузки, по логам проблема была в модуле async_downloader и если бы не тесты я бы искал проблему там, но благодаря что я заранее на каждый класс написал тесты стало ясно что структура html немного поменялась, и вместо ссылок на аудиофайлы я получал ссылки на картинки. Которые успешно передавались в модуль загрузчик. Так что тесты нужны так же для поиска ошибок в программе после изменений внешних факторов.
Я не совсем понял хотя посмотрел его несколько раз
ОтветитьА смысл писать Юнит-тесты, если тебе все равно придётся прописывать в своем коде те же условия, из-за которых провален Юнит-тест?
А откуда ты вообще берешь критерии для Юнит теста??
То есть суть Юнит теста такова: Я конструирую супер-прочный телефон. Делаю сначала говно, иду тестить его путем бросания на асфальт. Он естественно разбивается. И я такой: "ага, надо сделать ударопрочный корпус". А почему бы мне тогда сразу не делать ударопрочный корпус, лол
up
ОтветитьКива ввёл отрицательный радиус
ОтветитьЧётко объяснил )
ОтветитьАХАХАХАХ ЗА дегтярева в списке глупых отдельный плюс!))
ОтветитьА где про тесты можно посмотреть подробнее?
Просто по мне использовать валидатор входных значений и обработчик исключения куда более правильное решение, но думаю тут не про это.
ты настолько много куришь что даже через видео запах идёт голимый
Ответитьспасибо. люблю твои видосы, и лёгкий, но острый юмор👍
ОтветитьНеный? Ты че, гей?
Ответитькак программисты могут пить алкоголь. мне кажется, это негативно влияет не только на печени, но и на мозге
ОтветитьНу можно было что-нибудь другое протестить, а не просто у Сократики слизывать почти строчка в строчку
ОтветитьСпасибо большое. Хотелось бы больше материала по тестам, особенно как писать тесты на приложения из жизни
ОтветитьДоброго.
Почему-то тесты по программе из примера:
self.assertRaises(TypeError, circle_area, 'df')
self.assertRaises(TypeError, circle_area, [12,12])
self.assertRaises(TypeError, circle_area, {"1":"123"})
не выдают ошибку.
Однако вот этот тест выдал ошибку.
self.assertRaises(TypeError, circle_area, True)
Запуск делал до покрытия тестами основного кода.
У меня почему то Ran 0 test in 0.000s.
То с чем св'язано?
ну, теперь можно идти гробить печень)
ОтветитьОтличное познавательное видео!
ОтветитьЭто прям как "сам себе QA"
ОтветитьСпасибо за видео :)
ОтветитьСпасибо, все очень четко и лаконично.! Почему так мало лайков.
ОтветитьСпасибо за ваш труд
ОтветитьУважаемый блогер, здравствуйте. Объясните пожалуйста, как понять от какого класса мы должны наследовать класс, который мы сейчас задаем? Это в какой-то документации прописано или мы придумывать должны? У вас в данном случае наследуется от класса unitest.Testcase. Не понимаю, откуда вы взяли Testcase? Это модуль в классе unitest? спасибо
Ответитьспасибо
ОтветитьПривет! Изучаю Python и соответственно пишу очень много всего разного, от а+а до генераторов с функциями и прочего (пока на стадии генераторов и функций). При тесте задачи постоянно приходится ее перезапускать и вводить разные данные, int, float, str, коллекции и тд. Правильно ли я понял из видео что моих ручных проверок в каждой второй задаче можно избежать написав юниттест?
И наверное можно на такой случай написать универсальный тест и просто импортировать его в свои задачи?
Спасибо за видео на канале! Я, конечно же подписан, лайкаю и нажал на колокольчик:)
Бро, было бы круто ещё про тестирование БД, Моки и тесты для внешних API ))) А то там уже шкала сложности усвоения документации по unittest мгновенно взлетает по экспоненте)))
ОтветитьУ меня при вводе python -m unittest "название файла".ру, выдает ошибку. Говорит, файл не найдет. Что можно с этим сделать?
Ответитьспасибо тебе человек за этот великолепный ролик. подписался)
ОтветитьПросто волшебно рассказал. Просто отлично!!
ОтветитьЧтоб писать юнит тест нужно знать где вылезет ошибка? Если я знаю где слабое место, я и так его могу исправить.
Как можно найти слабости, которые сам не заметил?
кива не глупый. кива уже кандидат наук!))
ОтветитьЛайк за шутки!)
ОтветитьГробить печень - зачёт!
ОтветитьсЭрвис блеят)))))))
ОтветитьВопрос, а как ты запускаешь код из консоли атома, или это сторонний плагин?
Отпиши если не сложно)
йад
ОтветитьЯщик пива этому гению!!!
ОтветитьПроверка типов довольно спорная тема в питоне. Как по мне, если вы это предпочитаете, то лучше использовать какой-либо статически типизированый язык. Кроме того может сложиться впечатление, что юниттесты - это про проверку типов, хотя они скорее для тестирования логики самой функции/метода.
ОтветитьСпасибо!!!
ОтветитьПопуляризация написания юнит тестов - дело хорошее и нужное. Но (ИМО), без TDD теряется до 70% профита от юнит тестов.
ОтветитьСпасибо, очень познавательно!
ОтветитьПохоже тема поживее пошла, тут уже комменты подгребают... Даёшь 100 000 лайков и 100 500 комментов!
ОтветитьИспользуйте isinstance() вместо type() %)
Урок полезный, спасибо)
а в чем разница между unittest и pytest, например?
Ответить"Нежный" кодер
Ответитькак на пайтон тестить допустим c# код??
ОтветитьАаааа, Кива с Бужанским прям на своих тупых местах!😆
Спасибо!👍👍👍👍