{"id":"KI8j9jv0CPA","title":"10 Юнит-тесты, интеграционные тесты, TDD (Курс Rust на NEAR)","description":"Все видео курса    • Курс Rust на NEAR (RU)  \nСовместный курс NEAR & 4ire Labs\n\nПодписывайтесь, чтобы получать обновления о новостях NEAR, акциях, запуске проектов, баунти, хакатонов \nРусскоязычное сообщество NEAR https://t.me/near_protocol\nТвиттер   / near_protocol  \nОбщение с разработчиками https://t.me/openwebdev\n\nFollow the latest from NEAR Protocol on:\nWebsite: https://near.org/\nDiscord: https://near.chat/\nBlog: https://near.org/blog/\nTwitter:   / nearprotocol  \nGitHub: https://github.com/near  https://github.com/nearprotocol\n#Blockchain #FutureIsNEAR #NEAR #nearprotocol #rust #wasm #assemblyscript #раст","channel_name":"NEAR Protocol","published_at":"2021-08-09T00:00:00.000Z","thumbnail_url":"https://img.youtube.com/vi/KI8j9jv0CPA/hqdefault.jpg","transcript_text":"всем привет рад приветствовать вас на наши 10 лекции завершающей лекции по такому небольшому до introduction у курсу по родству надеюсь вы уже получили свой ли какие-то необходимые навыки сегодня у нас это будет достаточно практическая лекция бы сказал потому что в теории здесь не так много и как бы многие практики на приходила не рассмотрим потому что по этой теме написано много книг это в принципе такая достаточно общая тема из компьютерс мы с вами посмотрим рассмотреть те инструменты которые предлагают нам раз и попрактиковаться с вами немножко наша тема как вы уже знаете это тестирование то есть сама тема тестирования достаточно обширная как я говорю материалов по ней конечно же многое за одну лекцию мы юнитах не разберем потому что многие люди изучают тестирования как тестировать что какими инструментами как правильно писать тесты в принципе на отдельных курсах поэтому можно делать просто совершенно отдельный курс там на 10 лекции с практическими занятиями и тренироваться но мы с вами рассмотрим какие то какое-то множество из этой темы тестирования и рассмотрим что нам предлагает раз для того чтобы сделать наше тестирование легче ну давайте начнем с того что в принципе тестирование она помогает но и понять есть ли у вас баги в программе но если вас тоже написано много множество тестов это не гарантирует того что боковую вас нет как говорил свое время отгородиться возможно многие из вас слышали это имя это очень известный ученый среди компьютер silence и он говорил что тестирование программ это эффективный способ видеть присутствие багов но это полностью бесполезна для того чтобы показать их отсутствие и он в принципе прав потому что как бы вы ни писали свои тесты очень сложно покрыть все возможные варианты данных которые могут случаться вашей программе но тем ни менее наличие тестов это всегда хорошая практика потому что это вам позволит избежать множества ошибок и как минимум самое очевидное данные которые вы считаете должны проверяться вы точно сможете проверить своих теста ну и со временем вы сможете писать тесты которые будут покрывать как можно большее количество случаев и быть более универсальными давайте начнем с того да кстати вижу комментарии секунду хочу посмотреть плюс теста это тоже кот больше тестов больше да михаил в какой-то степени это но тем не менее если у вас к примеру вы запустили какой-то код на вид хоп у вас есть какой-то саре который запускает ваши тесты и если у вас один из вас и даже сотни тестов падает вдруг раньше не падал это тоже плохой признак что что-то пошло не так поэтому избыточное количество тестов это тоже плохо потому что и сложно поддерживать если вы меняете логику но нужно писать желательно такие универсальные тесты которые содержат себя такой общий куда то есть мы рассмотрим с вами этот чехол вот давайте начнем с того что в принципе сам раз а вот как я вам говорил еще на предыдущих лекциях брать есть такое правило если ваша программа скомпилировалось то она скорее всего работает так как нужно что под этим подразумевалось под этим подразумевалось первую очередь то что врасти если у вас программа скомпилировалось то раз уже позаботился о том что множество вещей у вас уже сделаны правильно то есть во многих других языках программирования он бы пришлось проверять в том числе и такие такие тесты до таких случаях раз например отправиться торчать то есть делает сравнивает типы проверяют что типы совпадают это конечно также будет происходить во многих языках но опять же с некоторыми нюансами то есть раз например вам как мы рассматривали не дает делает неявное приведение типов соответственно если где-то к примеру в том же steam + + если у вас функция принимает в себя интеджер а потом с каком-то месте программы передался туда float то есть число с плавающей точкой это в принципе пирса будет валить на то есть произойдет приведение типов и вы допустим ожидали там получить скажем число 3 при этом вы ваш код прислал туда число допустим перебросим и к примеру сердца он сделал округление до четырех приведение к целому числу и у вас ошибка и вы не знаете почему просто так не получится сделать ну по крайне мере не явно потому что простые если у вас функция ожидает целое число и у него перед пытаетесь передать float у вас просто или с компилируется программа ну потому что в расти если хотите float преобразовать в число вы должны явно указать что это преобразование в целое что если помните это например с помощью ключевого слова с вот то есть точно также раз проверяет и выходные параметры то есть у вас функция возвращает опять же число но вы по какой-то причине соли код который возвращает float это у вас тоже будет ошибка ваш код просто не компилируется и множество других таких вещей то есть до более сложных структур у вас не будет ни явного преобразования и поэтому от многих вас таких вещей уже оберегает кроме того проверяется присутствии своих данных о чем идет речь то есть братья вы можете использовать такие штуки так auction разом и вниз соответственно проверять если у вас сами данные или там ошибка и зависимости от этого реагировать ну маловероятно что вы напишете то что вес у вас отсутствует все напишите код что если у вас отсутствуют значение этого его как-то спасуете нет вы не сможете этого сделать потому что у вас программа просто не скопируется также ранд дает вам знать что то есть просто вы можете знать что память которого используйте валидная то есть а также например в том же steam + если вы их так и передаете какие-то сложные структуры даже какие-то строки какие-то указатели на какую-то память всегда может быть вариант что в вашем коде пошло что-то не то и у вас уже что происходит у вас происходит попытка доступа к уже допустим удаленные данные удаленным данным или несуществующему участку памяти собственно я думаю многие из вас уже те кто работал с этими языками знаешь что такое всех пол и так далее прости у вас этого не будет потому что как мы с вами рассматривали благодаря модели памяти враз то есть благодаря тому что выбросьте есть концепция владения концепция заимствование так далее ну и как и можно с вами поговорить и так как у нас есть такие как фраза усы общем слияние очень широко используются в программе надеюсь что их тоже уже начали использовать то соответственно у вас не получится дано на ошибки совершить какое-то действие и если вы получили какие не получили никаких данных но должны были их получить у вас тоже этом будет ошибка на этапе компиляции поэтому раза вас это проверяет ее то вы на самом деле если кто то из вас уже описал до этого на языках типа сисек и теперь пишет на россия и пробовал же что-то тестировать я думаю да вас принципе очень приятно что многие вещи которые вы должны проверять обычно вы здесь не проверяете то есть здесь более такое прямолинейно и тестирование что ли если так можно сказать так что же мы тогда должны делать в первую очередь прости если раз нам дает уже такой прибор такие возможности для управления нашим кодом и при этом нам не нужно тестировать очень много количество вещей ну конечно суть в том что раз за вас никак не права лидирует вашу бизнес-логику ну то есть допустим у вас есть функция которая называется мол тепла и боев а если умножить на 5 ваше число но если вы в своем коде написали что при этом это снится выполняется умножение на 4 соответственно до 1 по названию функции чудом не сделает проверку что вы умножаете именно на 5 а не на 4 или речь о чем речь о бизнес-логики то есть вы из помощи тестов в первую очередь должны проверять свой бизнес слуги бизнес-логику своего приложения sai любви отёки и так далее из чего состоит собственно любой пространстве во первых это не социализация то есть подготовка самого так что включает себя эту подготовку ну допустим вы кости у вас есть какое-то до приложение которое взаимодействует с базы данных в своем 30 вы вовремя детализации теста вы можете допустим создать какой-то экземпляр база данных ней подсоединяется создать таблицу и так далее вот это судьба инициализация а потом вы соответственно своем этом предложении используя эту базу данных которые вы инициализировали вы можете запускать свой тест который непосредственно уже будет взаимодействовать базы данных то есть вы запускаете свой код примеру делаете какие-то запросы создаете какие то записи в базе данных а потом делаете запрос и проверяете какой-нибудь но допустим вы у вас было базу данных студентом в тесте создали несколько студентов три студента и вы делаете запрос и вы проверяете что студента базе данных именно 3 то есть третий этап это убедиться в том что результат который выполнение вашего теста соответствует тому что вы ожидаете давайте посмотрим как именно брать это делается ну прости тест это в принципе функция любая функция которая у которой есть аннотация с атрибутом тест штуку аннотация вы уже в принципе использовали то есть когда мы ставим решеточку открываем скобки это аннотация вы например использовали аннотацию когда вы рассматриваете трейд с женей то есть вы писали решеточку квадратные скобки драйв и название трека да то есть допустим копи и так далее а сами тесты братцы запускаются с использованием команды каргат с давайте рассмотрим такой пример вот собственно у нас есть обычная функция она называется рид works были того я вам скажу вот вот этот пример это это тест у вас есть всегда в 1 если вы создаете проект с помощью команды кабанью как мы рассматривали с вами по моему на второй лекции засчитывается совете библиотеку с помощью команды у вас конце файла мы будет вот такая вот запись давайте в первую очередь обратим внимание пока народ эту часть нас есть функция до комментарий к organic да как я сказал когда мы создаем с помощью кардо библиотеку флаг дожди шли как раз позволяет создать библиотеку без фар без флага даже даже у вас будет создана бинарного пижаме вот у вас есть функция называется it works и как видите вот в этой функции есть аннотация с сустава при этом мы говорили с вами атрибут в тест это значит что вот эта функция это будет достаточным что мы делаем в этой функции в этой функции мы вызываем окрас а сорт пик что значит сорт и пол то есть дословно перевести это утверждение что равны вы утверждаете что левая первый аргумент выражение первого аргумента равно выражение 2 аргумента данном случае 2 плюс 2 равняется 4 если у вас вот эти обе части равны когда вы вызываете макроса 40 лекал если эти обе части равны у нас ничего не происходит то есть не происходит никакого вывода на экран у вас так просто проходит если же у вас эти две части не равны то у вас будет ошибка какая ошибка мы с вами рассмотрим чуть позже эти вот обрати внимание опять же просто обычная функция атрибут и все что находится внутри это является уже самим тестом давайте рассмотрим с точки зрения вот когда мы здесь рассматривались чего состоит с инициализация теста инициализации теста у нас не было запустить код который мы хотим протестировать у нас не здесь кода как по сути тоже нету разве что можно считать вот эту часть 2 из 2 ну и ожидаемый результат ожидаемый результат 45 мы проверяем что два плюс два вот этот код равняется ожидаемому результату 4 если у нас совпадает первый второй аргумент функция не дает никакого да на экран но при этом у вас проходит давайте посмотрим как это выглядит а вот вы можете посмотреть в этом случае мы копируем и вот такая надпись что мы запускаем один тест один тест с надписью it works it works и как вы заметили вот здесь есть по префикс тест в данном случае этот префикс с это вот название моды собственно вот этот атрибут для названия модуля он говорит о чем он говорит что этот модуль что тот код который содержится под этой аннотация данном случае эта модель он будет существовать только вы если без а вы пишете команду к арбата но при этом не будет существовать если будет команда каргу build то есть только в случае если вы запускаете тестовой среды исполнения тогда у вас этот присутствует а это значит что это значит то что до концепт роста это не совсем прямом применение этого концепта но тем не менее то что просто говорим что вы не платите за то что не используете то есть соответственно если компилирует и программу обычно вот эти данные это ну вот этот саммит с они не будут включены в самбе на раме сам бинарный файл приложения то есть если у вас даже огромные тесты и размер вашего приложения от этого не увеличится потому что вы у вас давайте вот объясню собственно почему так происходит когда вы запускаете команду короба тест 1 компилирует вам другой бинарный файл для приложения и по сути этот файл он отличается самого файла приложений пришел себе содержит тестовые данные он задерживает себе какие-то тестовые определения которой вы обозначили то есть это в принципе будет совсем другой бинарный файл так секунду меня чё ты пропала с экрана так вот о чем я говорю что это значит так как у вас запускается кстати вижу вопрос когда запускаю прогу тесто не запускается в несколько потоков до врать запускается изначально вместо к потоку но при этом есть отдельный флаг где вы можете указать количество потоков тест dash лишь потом пробел еще раз дождись по-моему называется тест трест переменное вы указать количество потоков которые вы хотите тестировать году в данном случае этого может пригодиться в некоторых случаях когда вы хотите тестировать только с помощью одного потока ну я думаю так как был задан этот вопрос то вы понимаете в каких случаях это может привидеться а вот собственно чтоб исходит вы когда отпускаете каргат у вас совсем другой бинарный файл котором содержится вот этот тестовый модуль и это значит что если вы просто собираете командой карба bing вот этого дополнительного кода не будет ваша вашим бинарного файла и соответственно вас размер до бинарник а не будет расти не будет увеличиваться поэтому вы можете писать под тысячу тестов от этого у вас само предложение уже работать не станет виду с точки зрения вычислительной точки зрения это конечно будет ли очень хорошо что у вас огромное количество тестов но на скорость все выполнения программы и navi размер это не повлияли что им мы можем здесь видеть выводе компилятора ну во первых что был запущен один тест и смотрят с и стать я вижу комментарий вопросы опять не видно других пользователей до того как на них ответят проверьте пожалуйста это аяз а можно вопрос был я повторю вопрос был в том что антон задал вопрос если он запускает paragon теста запускаются я не несколько потоков и от n до братья это запускается в несколько потоков по умолчанию и и соответственно если вам нужно какое-то определенное количество потоков то это можете врач на указать когда вы вызываете kest в этом случае команда будет выглядеть и пока карпат с дождись пробел dst стресс и допустим единичкой song я пока не буду с лекарственно вопроса женя в вам ответит чтобы мы продолжили больше коллекции потому что я одни и те же вещи получает оставляю несколько раз и тем кому вы просто неинтересно тоже будут отвлекаться так вот рассмотрим вывод здесь мы запускаем тест как видим на тест из модуля тсс названием it works и он окей теперь смотрим результат то есть резорт груза окей значит что все тесты пришли один раз прошел мы тестов за появилась мой тест про игнорировалось 0 тестов было измерено и 0 теста было профильтровано и вы бы это вы видите за сколько секунд выполнен то что это значит ну я думаю понятно что один тест прошел вдоль тестов файл тестов проводилась это понятно потому что у нас был одет и он прошел соответственно у нас не может быть еще одного теста который провалимся что значит игнорировать ну допустим у вас представьте вес приложение какая сложная логика какие-то у вас есть фичах приложение или написали до них 10 тестов потом 1 свечу допустим изменения и вы к примеру вы знаете что да это окей новый вас какой-то сложный тест до этого у вас нет возможности сейчас поправить с но вы знаете что ваш сайт с не будет работать он будет он будет всегда ругаться и вы не хотите чтобы ваш рег да постоянно видели что этот тест провален хотя вы до этого допустим создали еще на гитхабе что надо за фиксики тот с но это не умеешь вы каждый раз будете видеть что это тест провален вырасти вы можете добавить к тесту вот как у нас есть атрибут с вы можете добавить точно такой же атрибут который будет называться элинор то есть вы игнорируете этот с приветом какая-то сложная логика и вы его хотите пропустить на текущий момент чтобы не учитывать этот тест и опять же допустим у вас есть какой то какой то проект какое-то приложение кого-то сложно это приложение вас до него настроенный на гитхабе что это значит то есть каждый раз когда вы видите что-то на github у вас на гитхабе запускается какой-то поймаем который стоит все ваши тест роста и допустим у вас один из тестов какой-то сам по себе очень тяжелый ну допустим он создает несколько баз данных создает там тысячу таблиц и так далее и так далее и вы не хотите чтобы из-за этого каждый раз выполнение всех этих тестов у вас занимала там 40 50 минут потому что это очень тормозить ваш процесс поэтому вы можете конкретно вот написать такой тогда его проверить убедиться что он работает а потом вы можете поставить ему флаги игнора потому что вы не ходите каждый раз такое огромное количество времени тратить на прогулку всех тестов окей значит разобрались с сигнал что касается дословно перевести 0 тестов было измерено в данном случае речь о punch man 0 тестов профильтровано фильтрация тестов это это тоже удобная фильтрация то есть вот когда мы зачитаем команду корбут с по умолчанию у вас запускаются все тесты которые у вас есть но при этом у вас допустим 100 тестов вы написали 101 таз и он у вас пока проваливается когда вы его пишите то есть вы не можете понять как правильно писать его постоянно тестируйте тестируете новом как бы не очень хочется каждый раз проверять 100 других тестов на которую вы не влияли своим кодом до которые пишите вы хотите только бинты раз тестировать до этого образца вы можете написать тест dvd и название этого теста и у вас будет собственно именно конкретно этот выбран в данном случае если вас один тест вы вызвали осаду гих отбросила что тут было бы написано что сто про filtron а теперь вы видите тут такую интересную еще зависит что доктор moi la guerre тут 0 тестов что это значит ну прости можно писать комментарии как вы знаю возможно кто-то из вас знает комментарии это flash а ну можно также писать так называемый док комментарии по которому вас может генерироваться документация более того в каргу есть встроенная фишка как годов когда вы пишете 3 комментария три слоя между оговорился этого пишете три слыша это значит что это да комментарии будет его в россии бы вы самом док в комментарии можете писать какой-то кусок кода роста и в данном случае у вас будет происходить этот также проверка при вызове карга тест но это как бы дом в комментарии мы не будем рассматривать в рамках этого курса если кому то интересно это можно почитать в книге просто ну кто из вас пользовался этим тебя ценит удобство что вы можете прям какой-то код писаешь в документации к коду и при этом но это также будет тестироваться что это корректная код в документации а не какой то там не работающий код например давайте теперь изменим название вот этой функции она у нас называется it works просто изменим название функция на майка синтез и что поменялось выводе вы можете увидеть что теперь будет написано костин тест для того чтобы вы увидели как корреляцию что вот как вы назвали имя функции до теста и вы видите в результате идем дальше давайте добавим еще один вот пример то есть у нас есть болтать который 2 плюс 2 равняется 4 мы хотим это проверить а вот может напишем заведомо неправильных которые мы пишем что мы утверждаем что 2 плюс 2 равняется 3 очевидно что это неправда и мы ожидаем что это тест должен упасть какой вывод мы увидим давайте посмотрим мы шуткам два теста причем вы видите что здесь написано мая и на дсп хотя у нас первые списки домой contest но при этом мойка мтс здесь 2 о чем это говорит это опять же говорит о том что поверх теста на запускаются несколько потоков во вторых вы не должны рассчитывать на то что вот эти тесты у вас будут выполняться в каком-то определенном порядке порядок выполнения тех тестов вы не можете знать заранее соответственно мы должны каждый день он собственно и называется юнит-тесты тестируйте какой-то модуле 1 и желательно каждый тест у вас до каждый тест должен быть а томатным что это значит это значит что каждый тест у вас должен рассчитывать на данное которая непосредственно используется в этом тесте вы не можете рассчитывать что перед этим тестом будет выполнен из там еще четыре других или три других вы должны всегда рассчитывать что у вас то есть может самостоятельно выполнится и пройти он будет корректен и в любом случае окей вернемся к коду что мы видим что мы вызовем пройдем тест microsoft с и он окей прошел email но файла дон очевидно да потому что два плюс два не равняется трем а мы высаживаем что равняется давайте посмотрим вот здесь мы видим что трек тест что опять же нам говорит что этот пес был запущен в отдельном потоке паникует на том что а собственный файл левая часть не равняется правой части в данном случае я вот это левая часть не равняется правая часть и мы видим что слева это значение 4 подавляется 4 справа назначение 3 и соответственно мы даже видим строку которой которая произошла это там ну в данном случае это строка вы не для важно да потому что запускал камня-сердца main но тем не менее вы можете вот так сразу понять в какой строке непосредственно упал ваш тест и более того здесь я даже подсказка что если вы хотите увидеть то есть каком порядке были вызваны функции которые привели до к этому старше то вы можете с переменной среды разбег trace равняется единице ну и здесь соответственно files дополнительно вы рига низу видите данный музей будет список тестов который затаился который не прошел из статистики соответственно вы видите что один тест прошел один тест проводился но сам видите что-то сказал то есть это логично нас считаю что если вы запустили набор тестов и у вас хоть один из тестов не прошел это значит что считается что вас как бы тестирования не прошло успешно и в принципе логично да вы ведь не хотите скажем в продакшен кушать какой-то код там где работает ну практически все но часть вы знаете что не работает и думать о данном случае даст вам стоит обитают что если у вас хоть один тест не проходит за вас об этой стране прошли и не должны на это рассчитывать опять же если вы при этом точно знаете что вас вот вы написали новую логику она вам очевидно понятно что там что правильно новые при этом вы хотите игнорировать с потому что по какой-то причине у вас нет времени допустим за фиксит с или какой-то возможности для то вы можете просто поставить атрибут игнор вот здесь возле тесто например и тогда результат этого теста будет игнорироваться идем дальше также мы данном случае мы написать такой тогда очевидно что мы точно знаем да что два плюс два это четыре они три и мы хотим старости к примеру это проверить что два плюс два не будет равняться трём но как мы это можно проверить ну например как у нас есть макрос пик который значит о сорт эквол тасс мы утверждаем что первые 2 момента между собой так у нас есть макрос который называется assert н.и. сорт вот и колб который утверждает что первый и второй аргумент они не равны между собой если они не равны между собой то этот то эта часть не выводить ничего на экран но если вдруг они будут равны у нас ответственно также будет ошибка то есть если мы теперь запускаем вот такой тест то мы увидим что у нас наш тест с он проходит вот эту строку и в которой явно указали что 4 не равняется трем ok идем дальше давайте рассмотрим такой пример у нас это что-то похожее да на то что вы делали самом домашнее задание конечно вашим домашнее задание я надеюсь что у многих вас уже год стал да чуть чуть усложнился то есть вы уже используете там какие-то трейды вы также используете там дженерики который вы разбирались же не да . you 64 вы использовали тот тип и в котором вы соответственно можете инициализировать таких который вы ожидаете но для простоты демонстрации в данном случае мы с вами рассмотрим минимально работающий пример и его постараемся протестировать кстати забил кучу наперёд это не непосредственно до тема этой тема этого этой лекции просто но если у вас не работает вы написали какой-то код на 1 и например да и так он на ней протокола какой-то smart кантор и у вас что-то не работает и вы хотите получить какую-то помощь от комьюнити пришли например идете на stackoverflow создаете до какой-то топик описываете свою проблему или вы в discord подпишите кому-то или она опять же например в телеграм-чате нам допишите что ребята вот что-то не работает какой правильный алгоритм для того чтобы это сделать если вы примеру у вас какое-то большое приложение у вас там несколько модулей пример у вас там есть треугольники прямоугольники какие-то квадрат и потом вы еще добавили и липиды шары и прочее у вас не работает какая-то определенная часть кода вы не знаете почему вы говорите вот можете посмотреть что у меня не так и вы присылаете вот этот огромный ваш проект в котором куча разного кода его то тоже можно разобрать но сам человек который вам будет помогать он не очень захочет смотреть весь ход потому что собственно небес код до этого вас и что что для этого надо сделать для этого есть такая штука которая назвать которая называется такая аббревиатура сессии что значит эта аббревиатура это аббревиатура расшифровывается как short of content tracks кампала был example это краткий самосодержащее самых содержательный корректные и компилируемый пример то есть он себя содержит ну во-первых и минимизируйте количество кода то есть это у вас огромный проект у вас какая-то часть кода маленькой не работает напишите маленькую программу в которой будет этот маленький часть скотт которая не будет работать которой собственно что то же самое что в вашей программе с точки зрения вот вот этого кусочка кода и при этом ваш код корректный всего можно скомпилировать любой человек может скопировать ваш маленький кусочек и при этом он демонстрирует у проблема который вы пытались решить есть также другая штука она называется м-серии хорошо просто минимальные полный и правильный пример между ними небольшой разницы но принципиально лет суть понятна если у вас чего-то не работает где-то какая-то ошибка вы не можете скомпилировать и у вас какой товар вы пытаетесь получить помощь от кого-то не важно кто это будет stack overflow в discord ваш коллега товарища или просто кто-то ищет а постарайтесь в таком случае написать минимальный пример который будет содержать себя эту ошибку и который человек сможет запустить и соответственно и помочь вам найти ошибку более того я вам скажу такую вещь да это у всех бывали такие вещи и когда вот вы пишете стихи вот этот минимальный работающий пример правильной часто во время того как вы пишете этот минимальный пример вы находите сами уж то есть какой-то степени да вот как есть называется до дыба bing с помощью уткой когда вы кому-то рассказываете свою проблему вы во время того как снять эту проблему вы можете найти свою ошибку так и здесь если вы пишете какой-то минимальный пример который воспроизводит эту ошибку вы во время этого можете как раз и обнаружить в чем ваша ошибка что вы делаете и это может вам самим помочь найти ошибку даже просто потому что у вас будет меньше отскок кода которую вам надо будет повременно держать в голове и понимаете что с ним не так окей вернемся к нашему примеру в данном случае это у нас такое будем считать с ней минимальный какой-то пример у нас есть треугольник в котором есть два поля или и у него есть функция которая считает площадь который возвращает тоже и 64 и здесь мы умножаем а на бриз вроде все понятно давайте напишем до этого theory test мы проверим что у нас площадь читаю с правильной мы написали это чуть чуть не тот окей мы написали тест который называется в данном случае я вам опять же советую тестом давать какие-то понятные читаем и именно это будет проще либо и другим людям которые будут читать ваш код то есть не называйте тест одним test 23 а потом внутри писать комментарии что значит это тест называйте сразу тест в принципе как и функции до понятными именами не скупитесь на символы да потому что кто-то может писать отдал может назвать периодом двумя буквами и типа думаю это понятно что я это и и буквы ну это может быть понятно только этому человеку я считаю что длинное название функции намного лучше чем короткие это тоже касается названий перемен то есть вы можете увидеть что кто-то делать какие детства я называю там переменные эмиссии детали и что едва и никто не поймёт данном случае у нас как бы понятно потому что у нас конкретно постараюсь структурка прямоугольники к ней стороны да и общеприняты понять вот мы создаем соответственно прямоугольник 1 и которому передаем стороны три и два и выпишем наш макрос называем наш макрос осел прикол про что площадь прямоугольника один равняется 6 а потому что мы допустим или сами в голове почитай что три надо умножить на 6 или допустим мы не знали какая формула площади прямоугольника но мы нашли где-то какую-то таблицу которая нам показывает что до прямоугольника с площадью 32 площади равняется шести в данном случае я конечно эта утрирую но представьте что у вас какой-то примеру вам надо проверить кого какое значение числа фибоначчи 1050 по счету ну считать вы точно это будете долго самостоятельно в голове вы тоже вряд ли вы помните поэтому это окей и показывает данном случае вы указали что вы ожидаете до вот этих данных вот такую площадь вы можете заметить что у нас появилась вот такая вот надпись из supra и здесь звездочка что это надпись значит у нас вот этот мост с это уже отдельный модуль из у него отдельный свой скоб он не знает ни про что что существует снаружи этого модуля поэтому соответственно чтобы этот модуль тест на про существование нашей структуры rectangle и его метода илья мы должны написать вот такой вот поражение которое будет импортирует вот все что находится в родительском модуля и мы можем посмотреть если мы запускаем такой тест нам показывают что rectangle илья равняется мир являются он успешно окей он прошел хорошо давайте рассмотрим еще такого дальше если мы хотим при этом использовать и получать какие-то более понятные ошибки которые происходят скажем данном случае да у нас есть это достаточно очевидно без у нас круг это не проходит мы увидим не соответствует что там площадь 5 ожидалось 6 и что-то не так а давайте я вам сделал такой ну во первых лиц и обратить внимание я в методе я теперь сделал допустим я просто я раньше работал только с квадратами я не знаю как вычитается площадь прямоугольник мне кто-то сказал что четко там надо перемножить я подумал ноет как квадрата и умножил иной ну я утрирую данную дума понимаете почему вот я написал такой код вот при этом мне сказали что по таблице вот если у тебя прямоугольник со сторонами 3 2 то у него должно быть площадь шесть вот писал тест я думаю ну все должно быть понятно и я хочу увидеть конкретно ошибку что если этот тест не проходит более того обратите внимание что здесь есть по извещение макросы 40 вот если это тест не проходит вот тут это выражение оно равняется фолз у меня вы видите на экран сообщение что d армия в рыбка глызин проект приклеить и другие из и собственно площадь которой было посчитано ну вот кстати в чем отличие магаса а сорта тот шорт и полминуты гол в данном случае у нас макроса 40 принимает один параметр который соответственно если он равен true то ничего не происходит никакого вывода на экран если этот если этот аргумент равняется фолз результат выполнения этого выражения то соответственно мы увидим вот такую ошибку то есть данном случае мы форматируем вот сюда будет вставлена непосредственное значение или вот и как вы видеть это как я здесь написал что площадь прямоугольника италии умножить на эй мы ожидаем что здесь должна быть ошибкой давайте посмотрим что получится из этого а из этого получиться вот такой приз мы запускаем и видим и на я тут всегда не заменил через здесь в креативе из 9 в данном случае мы видим что сообщение что площадь прямоугольника неверно потому что прочитано площадь 9 то я чуть-чуть менял там воды здесь не тот вывод лет он будет выводе из жизни в какой строке то есть вы поняли для чего мы используем вот такую конструкцию для того чтобы написать явно какой-то со общину в данном случае это очевидно но опять же с у вас какой-то сложный пример скажем с базами данных у вас много каких-то вычислений то просто посмотреть что у вас два каких-то числа например не совпадает между собой дети старики это может быть не совсем не очевидно что же вас происходит и почему не работает то есть когда проектируете тесты вы ваша задача также если это необходимо написать понятно и сообщение об ошибке то есть почему этот тест не проходит вы можете написать что это тест не проходит ожидалось папа это значение потому что должны выполняться к примеру такие какие такие требования но при этом вы получите такой ok идем дальше давайте рассмотрим такой пример собственно числа фибоначчи до ряд фибоначчи в принципе достаточно простая математическая вещи много многие из вас слышали это ряд фибоначчи как он образуется каждая следующий элемент ряда он равен сумме двух предыдущих то есть соответственно ряд выглядит как то вот так примеру 0 1 1 2 3 5 8 13 21 34 и так далее то есть вы каждые два предыдущих элемента ряда складывайте с помощью не получать новые элементы до числа фибоначчи вообще это такая интересная штука вы можете почитать с помощью них описывается множество явлений самой природе и я думаю вам будет также это интересно так вот и вот у нас есть собственно код в данном случае вот этот написан декоративном стиле ну то есть он будет чище оптимальной чем рекурсивной которой обычно пишут ну и плюс я думаю многие многим из вас будет понятно да восприятие то есть что мы в этом поле делаем если мы передаем какое-то отрицательное число мы хотим получить минус 1 элемент ряда в ряде не может быть до минус первого элемента то мы паникуем сообщением что число которое мы передали например -1 она отрицательно если мы передаем число 0 вы опять же в ряду не может быть еще нулевого элемента но если мы говорим математическим языком соответственно мы паникуем что 0 это неправильный аргумента функции фибоначчи ну и соответственно специальных случаев то есть у нас нам нужен первый элемент из ряда фибоначчи там и соответственно возвращаем единичку окей специальную суды ну а дальше мы собственно в цикле проверяем что у нас мы последний элемент зарядов складываем с текущим и получаем следующее имя и таким образом вы часа также если у нас идет 1123 пока мы получаем число 2 мы складываем 1 из 1 а как мы получаем 103 мы складываем два а как мы что-то получаем число 5 мы складываем 3 бизон то есть два предыдущих элементов складывается это были следующие да да давайте напишем тест для нашего до нашего ряда фибоначчи мы написали в данном случае даже не структуру в данном случае у нас функция которая принимает себя одно число которое за номером иначе которым мы передаем ну как вы могли бы заметить мы бы могли сразу здесь указать тип ue 32 да и тогда мы вот этот кейс нам бы в принципе не приходилось бы даже учитывать потому что у нас за это вам побеспокоил собой раз и не дал бы туда передать отрицательное число но в данном случае здесь до наглядности давайте напишем то что он проверить каяках нашей функции вот написан тест опять же обратите внимание что мы должны импортировать до саму эту функцию снаружи используя юсупа данном случае выбираем тест фибоначчи ok у этого есть вот так обратите внимание название метода в данном случае да хотя я говорила она не совсем правильно по хорошему а если мы здесь содержит только этот тест фибоначчи kiss нам протестировать падает слов выносим в данном случае кстати 6 не подправил пример но значение результаты просто названия переменных набрали называются в данном случае мы вычитаем число фибоначчи 6 в ряду и проверяем что это число равняется 8 мы допустим нашли таблицы что же стоит что фибоначчи это 8 мы можем сами посчитать это 1123 58 году фибоначчи и проявляем что оно должно равно василий быть мы запускаем наш тест и мы спорим что тест окей он прошел на чудо действительно у нас шестое число ряда фибоначчи равняется 8 но у нас как вы видите у нас есть еще kbs учида которые стоит проверить в нашем примере и было бы хорошо проверить и поэтому мы напишем еще пару тестов для тех функций соответственно мы напишем тест для проверки что у нас не должно быть негативность чисел именно пишем тест что у нас тоже не должны приниматься в 0 часов потому что до этого у нас были специальные случай да ну можно потом еще написать до единички что это специальный кейс n равняется одному вот мы написали вот такие конструкции да но как бы не понятно что с этим делать потому что тут вроде как мы паникуем да ну давайте для начала мы написали эти богатстве посмотрим что они действительно подают мы запускаем кортес и мы видим совершит что фибоначчи окей спасибо на чьи это вот тест вины негативном unfelt и зерна давайте опять посмотрим каким не на каждой из этих тестов падает смотрим вывода теста с названием тест негативном смотрим тест на ветер нам паниковал с сообщением -1 отрицательное число окей да то есть в данном случае это мы увидели что вот эта причина почему это тест упал это то что то что мы хотели и здесь мы там посмотрим что здесь была ошибка что is not right arm иначе что опять же но и не принимается окей мы с вами видели что-нибудь из прошел два теста упала а как же нам сделать если мы хотим ну однозначно утверждать что вот этот должен проводиться и вот этот с должен провалиться это так называемое не готти негативное тестирование да то есть мы заранее знаем в каких случаях у нас должен провалиться и мы эти случаи описываемых учитывая как же нам сделать чтобы утверждать что это в этом тесте это тот должен не пройти и он должен запаниковать и должен не претендуем запаниковать опять же с помощью аннотации то есть мы добавляем вот такую вот аннотацию которым указываем что этот тест должен паниковать и здесь трогаем аннотацию когда же указом что тест должен паниковать окей это вроде понятно да надеюсь надежда если нет то пишите а также врать как мы с вами уже говорили во первых есть функция во-первых тесты запускаются изначально 0 потоках многопоточная извините то есть если вам нужно выставить какой-то необходимое количество потоков вы можете это выставить самостоятельно вручную указывая аргумент опять же если вы работаете до базы данных про допустим не хотите чтобы это было многопоточность потому что у вас синхронная базы данных и вы не хотите пытаться параллельно не обращаться и тогда люди так и у вас могут быть еще включения любые ваши причины указали необходимое количество потоков так же как и я вам говорил вы можете запускать какие-то тесты какой-то определенный теста может указать что тест фибоначчи вы можете указать что вы хотите запустить все тесты которые называются ни каких то есть если у вас есть негативном наверно и если вы напишете ты остановите у вас запустится под множество тестов которые содержатся в названии префикс тест никаких данном случае это делать опять же с помощью команды к роботов вы потом вы указываете dvd то есть 2-3 коротких и после этого указывайте префикса по которому нужно отфильтровать также как мы сами уже разобрались некоторые тесты можно регулировать с помощью добавления атрибут alt и некоторые тесты можно обозначать с помощью а требуют ошибок то есть в данном случае этот атрибут показывает что этот метод должен паниковать это все с вами мы рассматривали юнит-тесты юнит-тесты это в принципе самое важное что нам нужно было смотреть то есть для чего использовать элементы чтобы тестировать ваши какие-то конкретные модули написали какой-то мода к примеру для модуль до арифметики над фигурами то есть у вас там или прямоугольнике квадрат и круги треугольники и так далее вы написали какой-то мудростью нет какой то юнит unity до вашего модуля в котором вы проверяете что вы react на вы читаете площадь конкретно вы читаете периметр и другие значения до вашего модуля с помощью не теста вы проверяете корректор с вашего модуля точнее даже некорректность проверяете отсутствие богов до того кода который описываете но также существует такого понятия как интеграционных тестов интеграционные тесты конкретно на этой лекции мы не будем подробно с вами разбирать потому что на текущий момент я думаю всем будет очевидно их польза но это будет очень полезно на лекциях про мир потому что вне это очень актуально при тестировании спор контрактов что же такое интеграционные тесты интеграционные тесты когда вы хотите проверить взаимодействие нескольких модулей вашего вашего допустим приложения или вашей библиотеке взаимодействие этих модулей между собой как в данном случае врач создать интеграционных написание самих тестов у вас будет ровно так точно такое же ничего у вас не будет отличаться но если у вас юнит-тесты они описаны вот конце вашего файла да вот например в конце поломаем конца вашего конкретно скажем с то интеграционные тесты они у вас просто должны лежать в отдельной папке восходы же в парке с россии интеграционные тесты у вас будет лежать в парке тест опять же если говорить про интеграционный июня тест есть разница потому как собираются программа как собирается бинарник сам но такая это не столь принципиально для нас важно конкретно конкретно их концептуально использованию не тест это если вы хотите протестировать модуль интеграционные тесты если вы хотите проверить потестировать взаимодействия ваших и интеграционные тесты находятся в специальной директории которые вы создаете вот собственно это наверное а сам но это что мы я хотел с вами рассмотреть поводу тестирование задавайте свои вопросы также хочу обратить ваше внимание что на следующей неделе у нас начинаются модули по нерв манера протокол по написанию smart контрактов и более того для вас у меня есть отличная новость то что этот модуль по ним протокол большую его часть или полностью будет вести другой человек и это будет ввести очень опытный разработчик из мира протокол возможно кто из вас находится до 300 пространстве текущем что происходит вокруг вам следите за другими какими-то блокчейн проектами и так далее возможно этого человека в знаете ну пока текущий момент пусть для вас это будет небольшой сюрприз но это я думаю вам очень понравится я сам судовой сэм посещать все эти реакции потому что человек его очень интересный очень харизматичный и я думаю вы все получите удовольствие от просмотра в одессе вот еще на секунду до здесь нет не показала собственно вывод что в данном случае когда мы запустили когда мы запустили вот этот наш код в котором мы указали что вот эти два теста должны паниковать мы выводим можем конкретно увидеть что здесь показывать название теста здесь показывает что тесты прошли окей и более того здесь указано суффиксом что эти тесты должны паниковать и при этом они окей пирс они пони эти тесты паниковали но при этом это окей да извините что сюда только один сайт показать вот сейчас я посмотрю какие вопросы у нас есть про несколько потоков я ответил же не ответил ни мод полчаса сьюты dt станет разбивке по группам тестов до теста привет как модулям [музыка] вложение ответил есть какие-то рекомендации по организации кадре тестов выделены отдельные файлы с тестами в отдельных каталогах и допускается перемешивать коды теста драках адау-мата да у меня есть рекомендации этого смотрите я бы на вашем месте пользовался бы такой практикой а вот я предпочитаю пользоваться примеру и вот у вас есть модуль до него у вас есть какое-то количество ресурсов 35 и слова не небольшие это короткий но и понятно дело что если у вас условно вот занимают он 30 строк а при этом тест у вас занимают там скажем тысячу строк о наверное есть смысл разделить этого в отдельный файл и опять же по поводу с тестами в отдельных каталогах здесь я вам объяснил разницу брат этому самом деле важно если у вас лежит совпали с в директория сельский это будет у вас по умолчанию unity станет с уважали директории с корня проекта это будет считаться интеграционный тест так следующий вопрос если аналоги бифур лич который мы документ каждого теста для стирки при работе тестов по машине нет но ничто вам не мешает самим написать такую конструкцию использовать существующий проект когда используется шорт по никто запаниковал статистике даст вам будет написано что он пас если не запаниковал с таким префиксом по будет style даша верно как вы просто написали до того как я вот показал этот сайт как вы видите я добавил супа ник и у нас тест паникуют и мы в результате видим что паниковал действительно и видим суффикс что он должен был паниковать посмотрите вывод тестов вы конкретно сразу видите что с запаниковал но опять же это ваш тест при этом не запаникует а вы указали что он должен запаниковать тогда это будет ошибкой . быть написано holes что ожидалось они как тесте но не запаниковал а можно писать что-то них прямо перед кодом который паникует не перед тестом нет но до этого не что он не мешает написать несколько тестов которые будут паниковать правильно то есть если у вас не очень о кей 1 пример было бы в данном случае объединить вот эти вот два теста в 1 ну как бы вы могли бы до объединить их в один потому что как бы тестируем негативные случаи но это плохая практика потому что допустим вы и вдруг у вас какой то из этих функциональностью перестал паниковать это как будет окей этого сразу будет видно что продается если вы допустим объедините эти два теста в один и скажи 1 из них не будет паниковать чтобы об этом не узнаете поэтому старайтесь делать тесты маленькими возможности насколько можно настолько маленький понятное дело что вот в таком случае когда вы тестируете фибоначчи вы здесь могли бы написать допустим протестировать число там 1 в ряду 5 10 там 100 и 1000 а то есть несколько чисел примеру протестировать и из какой-то допустим огромное число в ряде протестировать что они работают тут и букей тем или и потому что вы проверяете непосредственно каждое число с помощью макроса acer пик был до негативного тестирования все-таки лучше делать отдельные тест skates и окей так если еще вопросы да еще ожидаю вопросах какое-то время буквально минуту да кстати я очень советую вам вот после сегодняшней лекции [музыка] взять ваше домашнее задание которое вы сделали и покрыть его тестами постарайтесь покрыть как можно больше ну а также нужно делать избыточно то что и между по достаточно не будь то что если вы возьмете вот этот матч и начнете здесь вручную проверять первые 100 чисел фибоначчи ну по-моему это будет избыточная вишня вы можете проверять там да вот каким то марок элемент типа 1 10 тысяч на число миллиона часов тогда имеет смысл потому что вы проверяете скажем какой-то прогрессе если вы допустим ожидаете что вдруг ваш код будет неправильно работать на каких-то больших числа по какой-то причине тогда это имеет смысл для вот но при этом вручную проверять все значения нет смысла поэтому да пожалуйста покройте свое домашнее задание тестами опять же группах обменяйтесь его между собой когда обменяйтесь заодно возможно увидите кто-то из вас вы видите что кто-то допустим лучше придумал вариант как это протестировать как-то сделал более органично более коротко это протестировал случай который вы не учите возможно то есть навык тестирование это отдельный навык и его очень хорошо приобретать с опытом то есть конечно есть масса ресурсов на этот счет во книг но здесь практика решают непосредственно практика написания тестов потому что вот вы практика написания тестов вам очень пригодится в том числе при работе с мосмарт контрактами на нервы протокол вот на следующем модуле лекция будет вести другое очень замечательный человек я думаю вся из вас получится удовольствие ну а свою очередь я очень надеюсь что вам был интересен может просто что вы за время прохождения этого модуля при люди какие-то дополнительные для себя навыки ну как минимум до навык работы с 1 диска многомерный раз конечно мы не можем вам дать за такое маленькое количество лекции всю информацию по расту мы постарались сделать материал максимально сжатый пакет постарались подать его максимально понятным чтобы всем кто присутствует было понятно о чем идет речь вот но мы конечно понимаем что где-то мы могли дать какие-то небольшие ошибки где-то что-то могли рассказывать не совсем понятно кому то из вас поэтому пожалуйста присылайте фидбэк что вам понравилось по этой части да по модулей по 1 что вам не понравилось мы приветствуем любой фидбэк но нам было очень приятно работать с вами вы очень классно аудитория много людей дошло до конца и вы очень хорошо задаете вопросы то есть некоторые вопросы очень интересные заковыристые очень круто мы это ценим это значит что вы интересуетесь до чуть больше чем мы даем вам опять же советую как минимум до того чтобы больше освоить раз пройти разбух на официальном сайте роста также догоним раз баек забыл конечно да эти книги изначально на английском и адаптация на русском и не задерживаются но при этом но при этом конечно от тех книгах намного больше материала примерно в чем мы вам дадим так я вижу вопрос все девять лекции михаил все 9 лекция будет вести один человек спасибо за лекция просто этот язык действительно взял самая лучшая других ради вам спасибо большое что вы присутствовали по поводу всех 9 лекция нет речь идет про мир протокол по нир протоколу ожидаются 5 лекции опять лекция будет вести один человек да ну возможно будут какие-то небольшие изменения но пока такой план оставшиеся 4 лекции по только тот будут и там ожидаются ну наверно как минимум два спикера вот и соответственно попадут спикеры мы объявили чуть чуть чуть позже сам язык java что у вас тоже такое мнение что этот язык замолчать грубить породить хочу вам кстати такую роста статистику то есть в этом году опять же 11 следования самый любимый язык программирования или и сейчас этот альбом язык по вопросам разработчиков правильно раз при этом нельзя сказать что самый популярный язык потому что как я говорю такая адаптация языка от компаниях растут медленно но в последнее время очень быстро и на текущий момент я вам скажу так вакансий по родству намного больше чем программистов нравится поэтому улучшайте свой раз не обязательно только среди блокчейна проходить книги по росту и я думаю вам очень понравится поэтому да ну в другом случае вы как мне маслом до воспользуетесь во время прохождения курса по нету такого smart контрактом и по работе сколько тот как бы тоже она расти поэтому вы еще попрактикуйтесь на сегодня лице закончилась и курс по растут закончился с последующим деле у нас будет курс по ней и увидимся сами огромное всем спасибо потом продолжайте продолжаете работать всем хороших выходных и и ждем вас на следующих модулях всем спасибо","transcript_synced_at":"2026-11-04T04:12:11.310Z","segments":[{"start_seconds":0,"text":"всем привет рад приветствовать вас на наши 10 лекции завершающей лекции по такому небольшому до introduction у","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=0s"},{"start_seconds":8,"text":"курсу по родству надеюсь вы уже получили свой ли какие-то необходимые навыки сегодня у нас это будет достаточно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=8s"},{"start_seconds":16,"text":"практическая лекция бы сказал потому что в теории здесь не так много и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=16s"},{"start_seconds":23,"text":"как бы многие практики на приходила не рассмотрим потому что по этой теме написано много книг это в принципе такая","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=23s"},{"start_seconds":31,"text":"достаточно общая тема из компьютерс мы с вами посмотрим рассмотреть те инструменты которые предлагают нам раз и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=31s"},{"start_seconds":39,"text":"попрактиковаться с вами немножко наша тема как вы уже знаете это тестирование","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=39s"},{"start_seconds":46,"text":"то есть сама тема тестирования достаточно обширная как я говорю материалов по ней конечно же многое за","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=46s"},{"start_seconds":53,"text":"одну лекцию мы юнитах не разберем потому что многие люди изучают тестирования как тестировать что какими инструментами как","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=53s"},{"start_seconds":62,"text":"правильно писать тесты в принципе на отдельных курсах поэтому можно делать просто совершенно отдельный курс там на","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=62s"},{"start_seconds":70,"text":"10 лекции с практическими занятиями и тренироваться но мы с вами рассмотрим какие то какое-то множество из этой темы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=70s"},{"start_seconds":79,"text":"тестирования и рассмотрим что нам предлагает раз для того чтобы сделать наше тестирование легче","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=79s"},{"start_seconds":86,"text":"ну давайте начнем с того что в принципе тестирование она помогает","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=86s"},{"start_seconds":94,"text":"но и понять есть ли у вас баги в программе но если вас тоже написано много множество тестов это не гарантирует того что боковую вас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=94s"},{"start_seconds":102,"text":"нет как говорил свое время отгородиться возможно многие из вас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=102s"},{"start_seconds":108,"text":"слышали это имя это очень известный ученый среди компьютер silence и он говорил что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=108s"},{"start_seconds":116,"text":"тестирование программ это эффективный способ видеть присутствие багов но это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=116s"},{"start_seconds":125,"text":"полностью бесполезна для того чтобы показать их отсутствие и он в принципе прав потому что как бы вы ни писали свои","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=125s"},{"start_seconds":134,"text":"тесты очень сложно покрыть все возможные варианты данных которые могут случаться вашей программе","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=134s"},{"start_seconds":142,"text":"но тем ни менее наличие тестов это всегда хорошая практика потому что это вам позволит избежать множества ошибок и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=142s"},{"start_seconds":152,"text":"как минимум самое очевидное данные которые вы считаете должны проверяться","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=152s"},{"start_seconds":160,"text":"вы точно сможете проверить своих теста ну и со временем вы сможете писать тесты которые будут покрывать как можно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=160s"},{"start_seconds":167,"text":"большее количество случаев и быть более универсальными","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=167s"},{"start_seconds":173,"text":"давайте начнем с того да кстати вижу комментарии секунду хочу посмотреть плюс","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=173s"},{"start_seconds":183,"text":"теста это тоже кот больше тестов больше да михаил в какой-то степени это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=183s"},{"start_seconds":190,"text":"но тем не менее если у вас к примеру вы запустили какой-то код на вид хоп у вас есть какой-то саре который запускает","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=190s"},{"start_seconds":199,"text":"ваши тесты и если у вас один из вас и даже сотни тестов падает вдруг раньше не падал это тоже плохой признак что что-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=199s"},{"start_seconds":208,"text":"пошло не так поэтому избыточное количество тестов это тоже плохо потому что и сложно поддерживать если вы меняете логику","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=208s"},{"start_seconds":216,"text":"но нужно писать желательно такие универсальные тесты которые содержат","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=216s"},{"start_seconds":222,"text":"себя такой общий куда то есть мы рассмотрим с вами этот чехол вот давайте","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=222s"},{"start_seconds":230,"text":"начнем с того что в принципе сам раз а вот как я вам говорил еще на предыдущих лекциях","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=230s"},{"start_seconds":238,"text":"брать есть такое правило если ваша программа скомпилировалось то она скорее всего работает так как нужно что под","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=238s"},{"start_seconds":246,"text":"этим подразумевалось под этим подразумевалось первую очередь то что врасти если у вас программа","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=246s"},{"start_seconds":256,"text":"скомпилировалось то раз уже позаботился о том что множество вещей у вас уже сделаны правильно то есть во многих","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=256s"},{"start_seconds":264,"text":"других языках программирования он бы пришлось проверять в том числе и такие","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=264s"},{"start_seconds":270,"text":"такие тесты до таких случаях раз","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=270s"},{"start_seconds":276,"text":"например отправиться торчать то есть делает сравнивает типы проверяют что типы совпадают это конечно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=276s"},{"start_seconds":285,"text":"также будет происходить во многих языках но опять же с некоторыми нюансами то есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=285s"},{"start_seconds":292,"text":"раз например вам как мы рассматривали не дает делает неявное приведение типов соответственно если где-то к примеру в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=292s"},{"start_seconds":302,"text":"том же steam + + если у вас функция принимает в себя интеджер а потом с каком-то месте","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=302s"},{"start_seconds":310,"text":"программы передался туда float то есть число с плавающей точкой это в принципе пирса будет валить на то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=310s"},{"start_seconds":318,"text":"есть произойдет приведение типов и вы допустим ожидали там получить скажем число 3 при этом вы ваш код прислал туда","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=318s"},{"start_seconds":328,"text":"число допустим перебросим и к примеру сердца он сделал округление до четырех приведение к целому числу и у вас ошибка","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=328s"},{"start_seconds":336,"text":"и вы не знаете почему просто так не получится сделать ну по крайне мере не явно потому что простые если у вас функция ожидает целое","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=336s"},{"start_seconds":344,"text":"число и у него перед пытаетесь передать float у вас просто или с компилируется программа ну потому что в расти если","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=344s"},{"start_seconds":352,"text":"хотите float преобразовать в число вы должны явно указать что это преобразование в целое что если помните","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=352s"},{"start_seconds":362,"text":"это например с помощью ключевого слова с вот то есть точно также раз проверяет и выходные параметры","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=362s"},{"start_seconds":372,"text":"то есть у вас функция возвращает опять же число но вы по какой-то причине соли код который возвращает float это у вас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=372s"},{"start_seconds":380,"text":"тоже будет ошибка ваш код просто не компилируется и множество других таких вещей то есть до более сложных структур","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=380s"},{"start_seconds":387,"text":"у вас не будет ни явного преобразования и поэтому от многих вас таких вещей уже","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=387s"},{"start_seconds":394,"text":"оберегает кроме того проверяется присутствии своих данных о чем идет речь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=394s"},{"start_seconds":402,"text":"то есть братья вы можете использовать такие штуки так auction разом и вниз соответственно проверять если у вас сами","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=402s"},{"start_seconds":410,"text":"данные или там ошибка и зависимости от этого реагировать ну маловероятно что вы напишете то что вес у вас отсутствует","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=410s"},{"start_seconds":419,"text":"все напишите код что если у вас отсутствуют значение этого его как-то спасуете нет вы не сможете этого сделать потому что у вас программа просто не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=419s"},{"start_seconds":426,"text":"скопируется также ранд дает вам знать что то есть просто вы можете знать что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=426s"},{"start_seconds":436,"text":"память которого используйте валидная то есть а также например в том же steam + если вы их так и передаете какие-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=436s"},{"start_seconds":443,"text":"сложные структуры даже какие-то строки какие-то указатели на какую-то память всегда может быть вариант что в вашем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=443s"},{"start_seconds":451,"text":"коде пошло что-то не то и у вас уже что происходит у вас происходит попытка","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=451s"},{"start_seconds":457,"text":"доступа к уже допустим удаленные данные удаленным данным или несуществующему","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=457s"},{"start_seconds":466,"text":"участку памяти собственно я думаю многие из вас уже те кто работал с этими","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=466s"},{"start_seconds":473,"text":"языками знаешь что такое всех пол и так далее прости у вас этого не будет потому что как мы с вами рассматривали","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=473s"},{"start_seconds":482,"text":"благодаря модели памяти враз то есть благодаря тому что выбросьте есть концепция владения концепция","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=482s"},{"start_seconds":489,"text":"заимствование так далее ну и как и можно с вами поговорить и так как у нас есть такие","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=489s"},{"start_seconds":498,"text":"как фраза усы общем слияние очень широко используются в программе надеюсь что их тоже уже начали использовать то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=498s"},{"start_seconds":505,"text":"соответственно у вас не получится дано на ошибки совершить какое-то действие и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=505s"},{"start_seconds":512,"text":"если вы получили какие не получили никаких данных но должны были их получить у вас тоже этом будет ошибка на","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=512s"},{"start_seconds":520,"text":"этапе компиляции поэтому раза вас это проверяет ее то вы на самом деле если","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=520s"},{"start_seconds":528,"text":"кто то из вас уже описал до этого на языках типа сисек и теперь пишет на россия и пробовал же что-то тестировать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=528s"},{"start_seconds":537,"text":"я думаю да вас принципе очень приятно что многие вещи которые вы должны проверять обычно вы здесь не проверяете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=537s"},{"start_seconds":545,"text":"то есть здесь более такое прямолинейно и тестирование что ли если так можно сказать так что же мы тогда должны","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=545s"},{"start_seconds":553,"text":"делать в первую очередь прости если раз нам дает уже такой прибор такие возможности для управления нашим кодом и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=553s"},{"start_seconds":562,"text":"при этом нам не нужно тестировать очень много количество вещей ну конечно суть в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=562s"},{"start_seconds":568,"text":"том что раз за вас никак не права лидирует вашу бизнес-логику ну то есть допустим у вас есть функция","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=568s"},{"start_seconds":575,"text":"которая называется мол тепла и боев а если умножить на 5 ваше число но если вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=575s"},{"start_seconds":582,"text":"в своем коде написали что при этом это снится выполняется умножение на 4 соответственно до 1 по названию функции","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=582s"},{"start_seconds":591,"text":"чудом не сделает проверку что вы умножаете именно на 5 а не на 4 или речь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=591s"},{"start_seconds":598,"text":"о чем речь о бизнес-логики то есть вы из помощи тестов в первую очередь должны проверять свой бизнес слуги","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=598s"},{"start_seconds":604,"text":"бизнес-логику своего приложения sai любви отёки и так далее из чего состоит собственно любой пространстве во первых","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=604s"},{"start_seconds":613,"text":"это не социализация то есть подготовка самого так что включает себя эту","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=613s"},{"start_seconds":621,"text":"подготовку ну допустим вы кости у вас есть какое-то до приложение которое взаимодействует с базы данных в своем 30","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=621s"},{"start_seconds":629,"text":"вы вовремя детализации теста вы можете допустим создать какой-то экземпляр база данных","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=629s"},{"start_seconds":638,"text":"ней подсоединяется создать таблицу и так далее вот это судьба инициализация а","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=638s"},{"start_seconds":644,"text":"потом вы соответственно своем этом предложении используя эту базу данных которые вы инициализировали вы можете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=644s"},{"start_seconds":653,"text":"запускать свой тест который непосредственно уже будет взаимодействовать базы данных то есть вы запускаете свой код примеру делаете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=653s"},{"start_seconds":659,"text":"какие-то запросы создаете какие то записи в базе данных а потом делаете запрос и проверяете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=659s"},{"start_seconds":667,"text":"какой-нибудь но допустим вы у вас было базу данных студентом в тесте создали несколько студентов три студента и вы делаете запрос и вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=667s"},{"start_seconds":677,"text":"проверяете что студента базе данных именно 3 то есть третий этап это убедиться в том что результат","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=677s"},{"start_seconds":685,"text":"который выполнение вашего теста соответствует тому что вы ожидаете давайте посмотрим как именно брать это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=685s"},{"start_seconds":694,"text":"делается ну прости тест это в принципе функция любая функция которая у которой","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=694s"},{"start_seconds":703,"text":"есть аннотация с атрибутом тест штуку аннотация вы уже в принципе","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=703s"},{"start_seconds":709,"text":"использовали то есть когда мы ставим решеточку открываем скобки это аннотация вы например","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=709s"},{"start_seconds":717,"text":"использовали аннотацию когда вы рассматриваете трейд с женей то есть вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=717s"},{"start_seconds":723,"text":"писали решеточку квадратные скобки драйв и название трека да то есть допустим","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=723s"},{"start_seconds":730,"text":"копи и так далее а сами тесты братцы запускаются с использованием команды","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=730s"},{"start_seconds":737,"text":"каргат с давайте рассмотрим такой пример вот собственно у нас есть обычная функция она называется рид works были","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=737s"},{"start_seconds":747,"text":"того я вам скажу вот вот этот пример это это тест у вас есть всегда в 1","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=747s"},{"start_seconds":754,"text":"если вы создаете проект с помощью команды кабанью как мы рассматривали с вами по моему на второй лекции засчитывается совете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=754s"},{"start_seconds":762,"text":"библиотеку с помощью команды у вас конце файла мы будет вот такая вот запись давайте в первую очередь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=762s"},{"start_seconds":771,"text":"обратим внимание пока народ эту часть нас есть функция до комментарий к organic да как я сказал","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=771s"},{"start_seconds":779,"text":"когда мы создаем с помощью кардо библиотеку флаг дожди шли как раз позволяет создать библиотеку без фар без","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=779s"},{"start_seconds":788,"text":"флага даже даже у вас будет создана бинарного пижаме вот у вас есть функция называется it","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=788s"},{"start_seconds":796,"text":"works и как видите вот в этой функции есть аннотация с сустава при этом мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=796s"},{"start_seconds":803,"text":"говорили с вами атрибут в тест это значит что вот эта функция это будет достаточным что мы делаем в этой функции","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=803s"},{"start_seconds":813,"text":"в этой функции мы вызываем окрас а сорт пик что значит сорт и пол то есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=813s"},{"start_seconds":820,"text":"дословно перевести это утверждение что равны вы утверждаете что левая первый аргумент","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=820s"},{"start_seconds":828,"text":"выражение первого аргумента равно выражение 2 аргумента данном случае 2 плюс 2 равняется 4 если у вас вот эти","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=828s"},{"start_seconds":837,"text":"обе части равны когда вы вызываете макроса 40 лекал если эти обе части равны у нас ничего не происходит то есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=837s"},{"start_seconds":846,"text":"не происходит никакого вывода на экран у вас так просто проходит если же у вас эти две части не равны то у вас будет","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=846s"},{"start_seconds":855,"text":"ошибка какая ошибка мы с вами рассмотрим чуть позже","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=855s"},{"start_seconds":866,"text":"эти вот обрати внимание опять же просто обычная функция атрибут и все что находится внутри это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=866s"},{"start_seconds":877,"text":"является уже самим тестом давайте рассмотрим с точки зрения вот когда мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=877s"},{"start_seconds":885,"text":"здесь рассматривались чего состоит с инициализация теста инициализации теста у нас не было запустить код который мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=885s"},{"start_seconds":894,"text":"хотим протестировать у нас не здесь кода как по сути тоже нету разве что можно считать вот эту часть 2 из 2 ну и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=894s"},{"start_seconds":902,"text":"ожидаемый результат ожидаемый результат 45 мы проверяем что два плюс два вот этот код равняется ожидаемому результату 4 если у нас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=902s"},{"start_seconds":911,"text":"совпадает первый второй аргумент функция не дает никакого да на экран но при этом у вас проходит давайте","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=911s"},{"start_seconds":919,"text":"посмотрим как это выглядит а вот вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=919s"},{"start_seconds":928,"text":"можете посмотреть в этом случае мы копируем и вот такая надпись что мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=928s"},{"start_seconds":935,"text":"запускаем один тест один тест с надписью it works it works и как вы заметили вот здесь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=935s"},{"start_seconds":943,"text":"есть по префикс тест в данном случае этот префикс с это вот название моды собственно вот","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=943s"},{"start_seconds":951,"text":"этот атрибут для названия модуля он говорит о чем он говорит что этот модуль что тот код который содержится под этой","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=951s"},{"start_seconds":961,"text":"аннотация данном случае эта модель он будет существовать только вы если без а вы пишете команду к арбата но при этом","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=961s"},{"start_seconds":969,"text":"не будет существовать если будет команда каргу build то есть только в случае если вы запускаете тестовой среды исполнения","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=969s"},{"start_seconds":976,"text":"тогда у вас этот присутствует а это значит что это значит то что до концепт роста это не совсем прямом применение","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=976s"},{"start_seconds":984,"text":"этого концепта но тем не менее то что просто говорим что вы не платите за то что не используете то есть соответственно если компилирует и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=984s"},{"start_seconds":991,"text":"программу обычно вот эти данные это ну вот этот саммит с они не будут включены в самбе на раме сам бинарный","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=991s"},{"start_seconds":1000,"text":"файл приложения то есть если у вас даже огромные тесты и размер вашего приложения от этого не увеличится потому","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1000s"},{"start_seconds":1006,"text":"что вы у вас давайте вот объясню собственно почему","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1006s"},{"start_seconds":1013,"text":"так происходит когда вы запускаете команду короба тест 1 компилирует вам другой бинарный файл для приложения и по","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1013s"},{"start_seconds":1022,"text":"сути этот файл он отличается самого файла приложений пришел себе содержит тестовые данные он задерживает себе","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1022s"},{"start_seconds":1029,"text":"какие-то тестовые определения которой вы обозначили то есть это в принципе будет совсем другой бинарный файл","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1029s"},{"start_seconds":1039,"text":"так секунду меня чё ты пропала с экрана","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1039s"},{"start_seconds":1056,"text":"так вот о чем я говорю что это значит","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1056s"},{"start_seconds":1061,"text":"так как у вас запускается кстати вижу вопрос когда запускаю прогу тесто не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1061s"},{"start_seconds":1070,"text":"запускается в несколько потоков до врать запускается изначально вместо к потоку но при этом есть отдельный флаг где вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1070s"},{"start_seconds":1080,"text":"можете указать количество потоков тест dash лишь потом пробел еще раз дождись","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1080s"},{"start_seconds":1088,"text":"по-моему называется тест трест переменное вы указать количество потоков которые вы хотите тестировать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1088s"},{"start_seconds":1096,"text":"году в данном случае этого может пригодиться в некоторых случаях когда вы хотите тестировать только с помощью одного потока ну я думаю так как был","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1096s"},{"start_seconds":1105,"text":"задан этот вопрос то вы понимаете в каких случаях это может привидеться а вот собственно чтоб","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1105s"},{"start_seconds":1114,"text":"исходит вы когда отпускаете каргат у вас совсем другой бинарный файл котором содержится вот этот тестовый модуль и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1114s"},{"start_seconds":1123,"text":"это значит что если вы просто собираете командой карба bing вот этого дополнительного кода не будет ваша","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1123s"},{"start_seconds":1130,"text":"вашим бинарного файла и соответственно вас размер до бинарник а не будет расти не будет увеличиваться поэтому вы можете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1130s"},{"start_seconds":1137,"text":"писать под тысячу тестов от этого у вас само предложение уже работать не станет виду с точки зрения","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1137s"},{"start_seconds":1145,"text":"вычислительной точки зрения это конечно будет ли очень хорошо что у вас огромное количество тестов но на скорость все","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1145s"},{"start_seconds":1154,"text":"выполнения программы и navi размер это не повлияли что им мы можем здесь видеть выводе компилятора ну во первых что был","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1154s"},{"start_seconds":1163,"text":"запущен один тест и смотрят с и стать я вижу комментарий вопросы опять не видно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1163s"},{"start_seconds":1172,"text":"других пользователей до того как на них ответят проверьте пожалуйста это аяз а можно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1172s"},{"start_seconds":1182,"text":"вопрос был я повторю вопрос был в том что антон задал вопрос если он запускает paragon теста запускаются я не несколько","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1182s"},{"start_seconds":1190,"text":"потоков и от n до братья это запускается в несколько потоков по умолчанию и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1190s"},{"start_seconds":1198,"text":"и соответственно если вам нужно какое-то определенное количество потоков то это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1198s"},{"start_seconds":1206,"text":"можете врач на указать когда вы вызываете kest в этом случае команда будет выглядеть и пока карпат с дождись","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1206s"},{"start_seconds":1215,"text":"пробел dst стресс и допустим единичкой song я пока не буду с","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1215s"},{"start_seconds":1222,"text":"лекарственно вопроса женя в вам ответит чтобы мы продолжили больше","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1222s"},{"start_seconds":1228,"text":"коллекции потому что я одни и те же вещи получает оставляю несколько раз и тем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1228s"},{"start_seconds":1236,"text":"кому вы просто неинтересно тоже будут отвлекаться так вот рассмотрим вывод здесь мы запускаем тест как видим на","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1236s"},{"start_seconds":1244,"text":"тест из модуля тсс названием it works и он окей теперь смотрим результат то есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1244s"},{"start_seconds":1252,"text":"резорт груза окей значит что все тесты пришли один раз прошел мы тестов за появилась мой тест","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1252s"},{"start_seconds":1260,"text":"про игнорировалось 0 тестов было измерено и 0 теста было профильтровано и вы бы это вы видите за сколько секунд","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1260s"},{"start_seconds":1267,"text":"выполнен то что это значит ну я думаю понятно что один тест прошел вдоль тестов файл тестов проводилась это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1267s"},{"start_seconds":1276,"text":"понятно потому что у нас был одет и он прошел соответственно у нас не может быть еще одного теста который провалимся","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1276s"},{"start_seconds":1283,"text":"что значит игнорировать ну допустим у вас представьте вес приложение какая","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1283s"},{"start_seconds":1291,"text":"сложная логика какие-то у вас есть фичах приложение или написали до них 10 тестов","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1291s"},{"start_seconds":1299,"text":"потом 1 свечу допустим изменения и вы к","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1299s"},{"start_seconds":1306,"text":"примеру вы знаете что да это окей новый вас какой-то сложный тест до этого у вас нет возможности сейчас поправить с но вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1306s"},{"start_seconds":1315,"text":"знаете что ваш сайт с не будет работать он будет он будет всегда ругаться и вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1315s"},{"start_seconds":1322,"text":"не хотите чтобы ваш рег да постоянно видели что этот тест провален хотя вы до этого допустим создали еще на гитхабе что надо за фиксики тот с но это не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1322s"},{"start_seconds":1332,"text":"умеешь вы каждый раз будете видеть что это тест провален вырасти вы можете добавить к тесту вот как у нас есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1332s"},{"start_seconds":1339,"text":"атрибут с вы можете добавить точно такой же атрибут который будет называться элинор то есть вы игнорируете этот с","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1339s"},{"start_seconds":1346,"text":"приветом какая-то сложная логика и вы его хотите пропустить на текущий момент чтобы не учитывать этот тест и опять же","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1346s"},{"start_seconds":1355,"text":"допустим у вас есть какой то какой то проект какое-то приложение кого-то сложно это приложение вас до него","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1355s"},{"start_seconds":1364,"text":"настроенный на гитхабе что это значит то есть каждый раз когда вы видите что-то на github у вас на","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1364s"},{"start_seconds":1371,"text":"гитхабе запускается какой-то поймаем который стоит все ваши тест роста и допустим у вас один из тестов какой-то сам по себе","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1371s"},{"start_seconds":1380,"text":"очень тяжелый ну допустим он создает несколько баз данных создает там тысячу таблиц и так далее и так далее и вы не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1380s"},{"start_seconds":1389,"text":"хотите чтобы из-за этого каждый раз выполнение всех этих тестов у вас занимала там 40 50 минут потому что это очень тормозить ваш процесс поэтому вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1389s"},{"start_seconds":1398,"text":"можете конкретно вот написать такой тогда его проверить убедиться что он работает а потом вы можете поставить ему","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1398s"},{"start_seconds":1406,"text":"флаги игнора потому что вы не ходите каждый раз такое огромное количество времени тратить на прогулку всех тестов","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1406s"},{"start_seconds":1414,"text":"окей значит разобрались с сигнал что касается","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1414s"},{"start_seconds":1421,"text":"дословно перевести 0 тестов было измерено в данном случае речь о punch","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1421s"},{"start_seconds":1427,"text":"man 0 тестов профильтровано фильтрация тестов это это тоже удобная фильтрация","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1427s"},{"start_seconds":1437,"text":"то есть вот когда мы зачитаем команду корбут с по умолчанию у вас запускаются все тесты которые у вас есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1437s"},{"start_seconds":1445,"text":"но при этом у вас допустим 100 тестов вы написали 101 таз и он у вас пока","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1445s"},{"start_seconds":1452,"text":"проваливается когда вы его пишите то есть вы не можете понять как правильно писать его постоянно тестируйте тестируете новом как бы не очень хочется","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1452s"},{"start_seconds":1461,"text":"каждый раз проверять 100 других тестов на которую вы не влияли своим кодом до которые пишите вы хотите только бинты раз тестировать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1461s"},{"start_seconds":1470,"text":"до этого образца вы можете написать тест dvd и название этого теста и у вас будет","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1470s"},{"start_seconds":1478,"text":"собственно именно конкретно этот выбран в данном случае если вас один тест вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1478s"},{"start_seconds":1485,"text":"вызвали осаду гих отбросила что тут было бы написано что сто про filtron а теперь вы видите тут такую интересную еще","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1485s"},{"start_seconds":1494,"text":"зависит что доктор moi la guerre тут 0 тестов что это значит ну прости можно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1494s"},{"start_seconds":1502,"text":"писать комментарии как вы знаю возможно кто-то из вас знает комментарии это flash а ну можно также писать так","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1502s"},{"start_seconds":1511,"text":"называемый док комментарии по которому вас может генерироваться документация более того в каргу есть встроенная фишка","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1511s"},{"start_seconds":1519,"text":"как годов когда вы пишете 3 комментария три слоя между оговорился этого пишете три слыша это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1519s"},{"start_seconds":1528,"text":"значит что это да комментарии будет его в россии бы вы самом док в комментарии","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1528s"},{"start_seconds":1535,"text":"можете писать какой-то кусок кода роста и в данном случае у вас будет происходить этот также проверка при","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1535s"},{"start_seconds":1544,"text":"вызове карга тест но это как бы дом в комментарии мы не будем рассматривать в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1544s"},{"start_seconds":1553,"text":"рамках этого курса если кому то интересно это можно почитать в книге просто ну кто из вас пользовался этим","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1553s"},{"start_seconds":1561,"text":"тебя ценит удобство что вы можете прям какой-то код писаешь в документации к коду и при этом но это также будет","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1561s"},{"start_seconds":1571,"text":"тестироваться что это корректная код в документации а не какой то там не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1571s"},{"start_seconds":1575,"text":"работающий код например давайте теперь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1575s"},{"start_seconds":1583,"text":"изменим название вот этой функции она у нас называется it works просто изменим название функция на майка синтез и что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1583s"},{"start_seconds":1591,"text":"поменялось выводе вы можете увидеть что теперь будет написано костин тест для того чтобы вы увидели как корреляцию что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1591s"},{"start_seconds":1599,"text":"вот как вы назвали имя функции до теста и вы видите в результате идем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1599s"},{"start_seconds":1608,"text":"дальше давайте добавим еще один вот пример то есть у нас есть болтать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1608s"},{"start_seconds":1616,"text":"который 2 плюс 2 равняется 4 мы хотим это проверить а вот может напишем заведомо неправильных","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1616s"},{"start_seconds":1622,"text":"которые мы пишем что мы утверждаем что 2 плюс 2 равняется 3 очевидно что это неправда и мы ожидаем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1622s"},{"start_seconds":1630,"text":"что это тест должен упасть какой вывод мы увидим давайте посмотрим мы шуткам два теста","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1630s"},{"start_seconds":1639,"text":"причем вы видите что здесь написано мая и на дсп хотя у нас первые списки домой contest","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1639s"},{"start_seconds":1647,"text":"но при этом мойка мтс здесь 2 о чем это говорит это опять же говорит о том что поверх теста на запускаются","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1647s"},{"start_seconds":1656,"text":"несколько потоков во вторых вы не должны рассчитывать на то что вот эти тесты у вас будут выполняться в каком-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1656s"},{"start_seconds":1664,"text":"определенном порядке порядок выполнения тех тестов вы не можете знать заранее соответственно мы должны каждый день он","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1664s"},{"start_seconds":1673,"text":"собственно и называется юнит-тесты тестируйте какой-то модуле 1 и желательно каждый тест у вас до каждый","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1673s"},{"start_seconds":1682,"text":"тест должен быть а томатным что это значит это значит что каждый тест у вас должен рассчитывать на данное которая непосредственно используется в этом","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1682s"},{"start_seconds":1691,"text":"тесте вы не можете рассчитывать что перед этим тестом будет выполнен из там еще четыре других или три других вы должны всегда рассчитывать что у вас то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1691s"},{"start_seconds":1700,"text":"есть может самостоятельно выполнится и пройти он будет корректен и в любом случае окей вернемся к коду что мы видим","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1700s"},{"start_seconds":1709,"text":"что мы вызовем пройдем тест microsoft с и он окей прошел email но файла дон","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1709s"},{"start_seconds":1719,"text":"очевидно да потому что два плюс два не равняется трем а мы высаживаем что равняется давайте посмотрим вот здесь мы видим что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1719s"},{"start_seconds":1728,"text":"трек тест что опять же нам говорит что этот пес был запущен в отдельном потоке","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1728s"},{"start_seconds":1736,"text":"паникует на том что а собственный файл левая часть не равняется правой части в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1736s"},{"start_seconds":1744,"text":"данном случае я вот это левая часть не равняется правая часть и мы видим что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1744s"},{"start_seconds":1749,"text":"слева это значение 4 подавляется 4","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1749s"},{"start_seconds":1757,"text":"справа назначение 3 и соответственно мы даже видим строку","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1757s"},{"start_seconds":1764,"text":"которой которая произошла это там ну в данном случае это строка вы не для важно да","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1764s"},{"start_seconds":1771,"text":"потому что запускал камня-сердца main но тем не менее вы можете вот так сразу понять в какой строке непосредственно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1771s"},{"start_seconds":1778,"text":"упал ваш тест и более того здесь я даже подсказка что если вы хотите увидеть то есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1778s"},{"start_seconds":1786,"text":"каком порядке были вызваны функции которые привели до к этому старше то вы можете с переменной среды разбег trace","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1786s"},{"start_seconds":1797,"text":"равняется единице ну и здесь соответственно files дополнительно вы рига низу видите данный музей будет список тестов который","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1797s"},{"start_seconds":1805,"text":"затаился который не прошел из статистики соответственно вы видите что один тест прошел один тест проводился","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1805s"},{"start_seconds":1812,"text":"но сам видите что-то сказал то есть это логично нас считаю что если вы запустили","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1812s"},{"start_seconds":1819,"text":"набор тестов и у вас хоть один из тестов не прошел это значит что считается что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1819s"},{"start_seconds":1828,"text":"вас как бы тестирования не прошло успешно и в принципе логично да вы ведь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1828s"},{"start_seconds":1838,"text":"не хотите скажем в продакшен кушать какой-то код там где работает ну практически все но часть вы знаете что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1838s"},{"start_seconds":1846,"text":"не работает и думать о данном случае даст вам стоит обитают что если у вас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1846s"},{"start_seconds":1852,"text":"хоть один тест не проходит за вас об этой стране прошли и не должны на это рассчитывать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1852s"},{"start_seconds":1860,"text":"опять же если вы при этом точно знаете что вас вот вы написали новую логику она вам очевидно понятно что там что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1860s"},{"start_seconds":1867,"text":"правильно новые при этом вы хотите игнорировать с потому что по какой-то причине у вас нет времени допустим за фиксит с или какой-то возможности для то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1867s"},{"start_seconds":1877,"text":"вы можете просто поставить атрибут игнор вот здесь возле тесто например и тогда результат этого теста","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1877s"},{"start_seconds":1884,"text":"будет игнорироваться идем дальше также мы данном случае мы написать такой тогда","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1884s"},{"start_seconds":1893,"text":"очевидно что мы точно знаем да что два плюс два это четыре они три и мы хотим","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1893s"},{"start_seconds":1900,"text":"старости к примеру это проверить что два плюс два не будет равняться трём но как мы это можно проверить ну например как у","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1900s"},{"start_seconds":1908,"text":"нас есть макрос пик который значит о сорт эквол тасс мы утверждаем что первые","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1908s"},{"start_seconds":1915,"text":"2 момента между собой так у нас есть макрос который называется assert н.и.","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1915s"},{"start_seconds":1920,"text":"сорт вот и колб который утверждает что первый и второй аргумент они не равны между собой если они не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1920s"},{"start_seconds":1929,"text":"равны между собой то этот то эта часть не выводить ничего на экран но если вдруг они будут равны у нас ответственно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1929s"},{"start_seconds":1937,"text":"также будет ошибка то есть если мы теперь запускаем вот такой тест то мы увидим что у нас наш тест с он проходит","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1937s"},{"start_seconds":1947,"text":"вот эту строку и в которой явно указали что 4 не равняется трем ok идем дальше","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1947s"},{"start_seconds":1956,"text":"давайте рассмотрим такой пример у нас это что-то похожее да на то что вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1956s"},{"start_seconds":1964,"text":"делали самом домашнее задание конечно вашим домашнее задание я надеюсь что у многих вас уже год стал да чуть чуть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1964s"},{"start_seconds":1971,"text":"усложнился то есть вы уже используете там какие-то трейды вы также используете там дженерики который вы разбирались же не да .","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1971s"},{"start_seconds":1982,"text":"you 64 вы использовали тот тип и в котором вы соответственно можете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1982s"},{"start_seconds":1988,"text":"инициализировать таких который вы ожидаете но для простоты демонстрации в данном случае мы с вами рассмотрим","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1988s"},{"start_seconds":1995,"text":"минимально работающий пример и его постараемся протестировать кстати забил","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=1995s"},{"start_seconds":2004,"text":"кучу наперёд это не непосредственно до тема этой тема этого этой лекции просто","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2004s"},{"start_seconds":2012,"text":"но если у вас не работает вы написали какой-то код на 1 и например да и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2012s"},{"start_seconds":2020,"text":"так он на ней протокола какой-то smart кантор и у вас что-то не работает и вы хотите получить какую-то помощь от","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2020s"},{"start_seconds":2027,"text":"комьюнити пришли например идете на stackoverflow создаете до какой-то топик описываете свою проблему или вы в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2027s"},{"start_seconds":2036,"text":"discord подпишите кому-то или она опять же например в телеграм-чате нам допишите что ребята вот что-то не работает какой","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2036s"},{"start_seconds":2046,"text":"правильный алгоритм для того чтобы это сделать если вы примеру у вас какое-то большое","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2046s"},{"start_seconds":2054,"text":"приложение у вас там несколько модулей пример у вас там есть треугольники","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2054s"},{"start_seconds":2061,"text":"прямоугольники какие-то квадрат и потом вы еще добавили и липиды шары и прочее","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2061s"},{"start_seconds":2070,"text":"у вас не работает какая-то определенная часть кода вы не знаете почему вы говорите вот можете посмотреть что у меня не так и вы присылаете вот этот","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2070s"},{"start_seconds":2078,"text":"огромный ваш проект в котором куча разного кода его то тоже можно разобрать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2078s"},{"start_seconds":2085,"text":"но сам человек который вам будет помогать он не очень захочет смотреть весь ход потому что собственно небес код до этого","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2085s"},{"start_seconds":2093,"text":"вас и что что для этого надо сделать для этого","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2093s"},{"start_seconds":2100,"text":"есть такая штука которая назвать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2100s"},{"start_seconds":2108,"text":"которая называется такая аббревиатура сессии что значит эта аббревиатура это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2108s"},{"start_seconds":2117,"text":"аббревиатура расшифровывается как short of content tracks кампала был example это краткий","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2117s"},{"start_seconds":2124,"text":"самосодержащее самых содержательный корректные и компилируемый пример то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2124s"},{"start_seconds":2131,"text":"есть он себя содержит ну во-первых и минимизируйте количество кода то есть это у вас огромный проект у вас какая-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2131s"},{"start_seconds":2139,"text":"часть кода маленькой не работает напишите маленькую программу в которой будет этот маленький часть скотт которая не будет работать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2139s"},{"start_seconds":2146,"text":"которой собственно что то же самое что в вашей программе с точки зрения вот вот","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2146s"},{"start_seconds":2153,"text":"этого кусочка кода и при этом ваш код корректный всего можно скомпилировать любой человек может скопировать ваш","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2153s"},{"start_seconds":2161,"text":"маленький кусочек и при этом он демонстрирует у проблема который вы пытались решить есть также другая штука","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2161s"},{"start_seconds":2169,"text":"она называется м-серии хорошо просто минимальные полный и правильный пример между ними небольшой","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2169s"},{"start_seconds":2177,"text":"разницы но принципиально лет суть понятна если у вас чего-то не работает где-то какая-то ошибка вы не можете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2177s"},{"start_seconds":2184,"text":"скомпилировать и у вас какой товар вы пытаетесь получить помощь от кого-то не важно кто это будет stack overflow в discord ваш коллега товарища или просто","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2184s"},{"start_seconds":2193,"text":"кто-то ищет а постарайтесь в таком случае написать минимальный пример который будет содержать себя эту ошибку","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2193s"},{"start_seconds":2201,"text":"и который человек сможет запустить и соответственно и помочь вам найти ошибку","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2201s"},{"start_seconds":2208,"text":"более того я вам скажу такую вещь да это у всех бывали такие вещи и когда вот вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2208s"},{"start_seconds":2217,"text":"пишете стихи вот этот минимальный работающий пример правильной часто во время того как вы пишете этот минимальный пример вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2217s"},{"start_seconds":2225,"text":"находите сами уж то есть какой-то степени да вот как есть называется до дыба bing с помощью уткой","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2225s"},{"start_seconds":2234,"text":"когда вы кому-то рассказываете свою проблему вы во время того как снять эту проблему вы можете найти свою ошибку так и здесь если вы пишете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2234s"},{"start_seconds":2242,"text":"какой-то минимальный пример который воспроизводит эту ошибку вы во время этого можете как раз и обнаружить в чем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2242s"},{"start_seconds":2251,"text":"ваша ошибка что вы делаете и это может вам самим помочь найти ошибку даже просто потому что у вас будет меньше","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2251s"},{"start_seconds":2260,"text":"отскок кода которую вам надо будет повременно держать в голове и понимаете что с ним не так окей вернемся к нашему","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2260s"},{"start_seconds":2268,"text":"примеру в данном случае это у нас такое будем считать с ней минимальный какой-то пример у нас есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2268s"},{"start_seconds":2276,"text":"треугольник в котором есть два поля или и у него есть функция которая считает площадь который возвращает тоже и 64 и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2276s"},{"start_seconds":2285,"text":"здесь мы умножаем а на бриз вроде все понятно давайте напишем до этого theory test","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2285s"},{"start_seconds":2293,"text":"мы проверим что у нас площадь читаю с правильной мы написали это чуть чуть не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2293s"},{"start_seconds":2303,"text":"тот окей мы написали тест который называется в данном случае я вам","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2303s"},{"start_seconds":2312,"text":"опять же советую тестом давать какие-то понятные читаем и именно это будет проще либо и другим людям которые будут читать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2312s"},{"start_seconds":2320,"text":"ваш код то есть не называйте тест одним test 23 а потом внутри писать комментарии что значит это тест называйте сразу тест в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2320s"},{"start_seconds":2329,"text":"принципе как и функции до понятными именами не скупитесь на символы да потому что кто-то может писать отдал","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2329s"},{"start_seconds":2337,"text":"может назвать периодом двумя буквами и типа думаю это понятно что я это и и буквы ну это может быть понятно только","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2337s"},{"start_seconds":2346,"text":"этому человеку я считаю что длинное название функции намного лучше чем короткие это тоже касается названий","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2346s"},{"start_seconds":2354,"text":"перемен то есть вы можете увидеть что кто-то делать какие детства я называю","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2354s"},{"start_seconds":2361,"text":"там переменные эмиссии детали и что едва и никто не поймёт данном","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2361s"},{"start_seconds":2368,"text":"случае у нас как бы понятно потому что у нас конкретно постараюсь структурка прямоугольники к ней стороны да и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2368s"},{"start_seconds":2376,"text":"общеприняты понять вот мы создаем соответственно прямоугольник 1 и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2376s"},{"start_seconds":2384,"text":"которому передаем стороны три и два и выпишем наш макрос называем наш макрос","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2384s"},{"start_seconds":2392,"text":"осел прикол про что площадь прямоугольника один равняется 6 а потому что мы допустим или сами в голове","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2392s"},{"start_seconds":2399,"text":"почитай что три надо умножить на 6 или допустим мы не знали какая формула площади прямоугольника но мы нашли где-то какую-то таблицу которая нам","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2399s"},{"start_seconds":2407,"text":"показывает что до прямоугольника с площадью 32 площади равняется шести в данном случае я конечно эта утрирую но представьте что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2407s"},{"start_seconds":2415,"text":"у вас какой-то примеру вам надо проверить кого какое значение числа фибоначчи 1050","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2415s"},{"start_seconds":2423,"text":"по счету ну считать вы точно это будете долго самостоятельно в голове вы тоже вряд ли вы помните поэтому это окей и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2423s"},{"start_seconds":2433,"text":"показывает данном случае вы указали что вы ожидаете до вот этих данных вот такую площадь вы можете заметить что у нас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2433s"},{"start_seconds":2442,"text":"появилась вот такая вот надпись из supra и здесь звездочка что это надпись значит","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2442s"},{"start_seconds":2449,"text":"у нас вот этот мост с это уже отдельный модуль из у него отдельный свой скоб он","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2449s"},{"start_seconds":2456,"text":"не знает ни про что что существует снаружи этого модуля поэтому соответственно чтобы этот модуль тест на","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2456s"},{"start_seconds":2464,"text":"про существование нашей структуры rectangle и его метода илья мы должны написать вот такой вот поражение которое","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2464s"},{"start_seconds":2474,"text":"будет импортирует вот все что находится в родительском модуля","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2474s"},{"start_seconds":2482,"text":"и мы можем посмотреть если мы запускаем такой тест нам показывают что rectangle","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2482s"},{"start_seconds":2491,"text":"илья равняется мир являются он успешно окей он прошел хорошо давайте рассмотрим еще такого","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2491s"},{"start_seconds":2500,"text":"дальше если мы хотим при этом использовать и получать какие-то более","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2500s"},{"start_seconds":2507,"text":"понятные ошибки которые происходят скажем данном случае да у нас есть это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2507s"},{"start_seconds":2513,"text":"достаточно очевидно без у нас круг это не проходит мы увидим не соответствует что там площадь 5 ожидалось 6 и что-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2513s"},{"start_seconds":2523,"text":"не так а давайте я вам сделал такой ну во первых лиц и обратить внимание я в методе я теперь сделал","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2523s"},{"start_seconds":2533,"text":"допустим я просто я раньше работал только с квадратами я не знаю как вычитается площадь прямоугольник мне","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2533s"},{"start_seconds":2540,"text":"кто-то сказал что четко там надо перемножить я подумал ноет как квадрата и умножил иной ну я утрирую данную дума понимаете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2540s"},{"start_seconds":2548,"text":"почему вот я написал такой код вот при этом мне сказали что по таблице вот если","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2548s"},{"start_seconds":2557,"text":"у тебя прямоугольник со сторонами 3 2 то у него должно быть площадь шесть вот писал тест я думаю ну все должно быть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2557s"},{"start_seconds":2565,"text":"понятно и я хочу увидеть конкретно ошибку что если этот тест не проходит более того обратите внимание что здесь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2565s"},{"start_seconds":2572,"text":"есть по извещение макросы 40 вот если это тест не проходит вот тут это выражение оно равняется фолз у меня вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2572s"},{"start_seconds":2583,"text":"видите на экран сообщение что d армия в рыбка глызин проект приклеить и другие из и собственно площадь которой было","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2583s"},{"start_seconds":2590,"text":"посчитано ну вот кстати в чем отличие магаса а сорта тот шорт и полминуты гол в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2590s"},{"start_seconds":2598,"text":"данном случае у нас макроса 40 принимает один параметр который соответственно если он равен true то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2598s"},{"start_seconds":2606,"text":"ничего не происходит никакого вывода на экран если этот если этот аргумент равняется фолз результат выполнения","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2606s"},{"start_seconds":2615,"text":"этого выражения то соответственно мы увидим вот такую ошибку то есть данном случае мы форматируем вот","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2615s"},{"start_seconds":2622,"text":"сюда будет вставлена непосредственное значение или вот и как вы видеть это как я здесь написал что площадь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2622s"},{"start_seconds":2630,"text":"прямоугольника италии умножить на эй мы ожидаем что здесь должна быть ошибкой давайте посмотрим что получится из этого","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2630s"},{"start_seconds":2636,"text":"а из этого получиться вот такой приз мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2636s"},{"start_seconds":2641,"text":"запускаем и видим и на я тут всегда не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2641s"},{"start_seconds":2652,"text":"заменил через здесь в креативе из 9 в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2652s"},{"start_seconds":2659,"text":"данном случае мы видим что сообщение что площадь прямоугольника неверно потому","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2659s"},{"start_seconds":2667,"text":"что прочитано площадь 9 то я чуть-чуть менял там воды здесь не тот вывод лет он","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2667s"},{"start_seconds":2674,"text":"будет выводе из жизни в какой строке то есть вы поняли для чего мы используем вот такую конструкцию для того чтобы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2674s"},{"start_seconds":2682,"text":"написать явно какой-то со общину в данном случае это очевидно но опять же с у вас какой-то сложный пример скажем с базами данных у вас много каких-то вычислений то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2682s"},{"start_seconds":2692,"text":"просто посмотреть что у вас два каких-то числа например не совпадает между собой дети старики это может быть не совсем не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2692s"},{"start_seconds":2699,"text":"очевидно что же вас происходит и почему не работает то есть когда проектируете тесты вы ваша задача также если это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2699s"},{"start_seconds":2708,"text":"необходимо написать понятно и сообщение об ошибке то есть почему этот тест не проходит вы можете написать что это тест не проходит","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2708s"},{"start_seconds":2717,"text":"ожидалось папа это значение потому что должны выполняться к примеру такие какие такие требования но при этом вы получите такой ok идем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2717s"},{"start_seconds":2726,"text":"дальше давайте рассмотрим такой пример собственно числа фибоначчи до ряд","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2726s"},{"start_seconds":2732,"text":"фибоначчи в принципе достаточно простая математическая вещи много многие из вас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2732s"},{"start_seconds":2741,"text":"слышали это ряд фибоначчи как он образуется каждая следующий элемент ряда","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2741s"},{"start_seconds":2748,"text":"он равен сумме двух предыдущих","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2748s"},{"start_seconds":2755,"text":"то есть соответственно ряд выглядит как то вот так примеру 0 1 1 2 3 5 8 13 21","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2755s"},{"start_seconds":2765,"text":"34 и так далее то есть вы каждые два предыдущих элемента ряда складывайте с помощью не получать новые элементы до","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2765s"},{"start_seconds":2773,"text":"числа фибоначчи вообще это такая интересная штука вы можете почитать с помощью них описывается множество явлений самой природе и я думаю вам","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2773s"},{"start_seconds":2783,"text":"будет также это интересно так вот и вот у нас есть собственно код в данном случае вот этот написан декоративном","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2783s"},{"start_seconds":2792,"text":"стиле ну то есть он будет чище оптимальной чем рекурсивной которой обычно пишут ну и плюс я думаю многие","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2792s"},{"start_seconds":2800,"text":"многим из вас будет понятно да восприятие то есть что мы в этом поле делаем если мы передаем какое-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2800s"},{"start_seconds":2808,"text":"отрицательное число мы хотим получить минус 1 элемент ряда в ряде не может быть до минус первого элемента то мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2808s"},{"start_seconds":2816,"text":"паникуем сообщением что число которое мы передали например -1 она отрицательно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2816s"},{"start_seconds":2822,"text":"если мы передаем число 0 вы опять же в ряду не может быть еще нулевого элемента но если мы говорим математическим языком","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2822s"},{"start_seconds":2832,"text":"соответственно мы паникуем что 0 это неправильный аргумента функции фибоначчи","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2832s"},{"start_seconds":2841,"text":"ну и соответственно специальных случаев то есть у нас нам нужен первый элемент из ряда фибоначчи там и соответственно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2841s"},{"start_seconds":2849,"text":"возвращаем единичку окей специальную суды ну а дальше мы собственно в цикле","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2849s"},{"start_seconds":2857,"text":"проверяем что у нас мы последний элемент зарядов складываем с текущим и получаем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2857s"},{"start_seconds":2866,"text":"следующее имя и таким образом вы часа также если у нас идет 1123 пока мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2866s"},{"start_seconds":2874,"text":"получаем число 2 мы складываем 1 из 1 а как мы получаем 103 мы складываем два а","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2874s"},{"start_seconds":2882,"text":"как мы что-то получаем число 5 мы складываем 3 бизон то есть два предыдущих элементов складывается это были следующие","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2882s"},{"start_seconds":2889,"text":"да да давайте напишем тест для нашего до нашего ряда фибоначчи","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2889s"},{"start_seconds":2898,"text":"мы написали в данном случае даже не структуру в данном случае у нас функция которая принимает себя одно число которое за номером иначе которым мы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2898s"},{"start_seconds":2907,"text":"передаем ну как вы могли бы заметить мы бы могли сразу здесь указать тип ue 32","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2907s"},{"start_seconds":2914,"text":"да и тогда мы вот этот кейс нам бы в принципе не приходилось бы даже учитывать потому что у нас за это вам","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2914s"},{"start_seconds":2923,"text":"побеспокоил собой раз и не дал бы туда передать отрицательное число но в данном случае здесь до наглядности","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2923s"},{"start_seconds":2930,"text":"давайте напишем то что он проверить каяках нашей функции вот написан тест","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2930s"},{"start_seconds":2937,"text":"опять же обратите внимание что мы должны импортировать до саму эту функцию снаружи","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2937s"},{"start_seconds":2944,"text":"используя юсупа данном случае выбираем тест фибоначчи ok у этого есть вот так обратите","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2944s"},{"start_seconds":2954,"text":"внимание название метода в данном случае да хотя я говорила она не совсем правильно по хорошему а если мы здесь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2954s"},{"start_seconds":2960,"text":"содержит только этот тест фибоначчи kiss нам протестировать падает слов","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2960s"},{"start_seconds":2967,"text":"выносим в данном случае кстати 6 не подправил пример но значение результаты","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2967s"},{"start_seconds":2975,"text":"просто названия переменных набрали называются в данном случае мы вычитаем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2975s"},{"start_seconds":2981,"text":"число фибоначчи 6 в ряду и проверяем что это число равняется 8 мы допустим нашли","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2981s"},{"start_seconds":2990,"text":"таблицы что же стоит что фибоначчи это 8 мы можем сами посчитать это 1123","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2990s"},{"start_seconds":2996,"text":"58 году фибоначчи и проявляем что оно должно равно василий быть мы запускаем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=2996s"},{"start_seconds":3003,"text":"наш тест и мы спорим что тест окей он прошел на чудо действительно у нас шестое число ряда фибоначчи равняется 8","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3003s"},{"start_seconds":3013,"text":"но у нас как вы видите у нас есть еще kbs учида которые стоит проверить в нашем примере","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3013s"},{"start_seconds":3021,"text":"и было бы хорошо проверить и поэтому мы напишем еще пару","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3021s"},{"start_seconds":3029,"text":"тестов для тех функций соответственно мы напишем тест для проверки что у нас не должно быть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3029s"},{"start_seconds":3036,"text":"негативность чисел именно пишем тест что у нас тоже не должны приниматься в 0","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3036s"},{"start_seconds":3045,"text":"часов потому что до этого у нас были специальные случай да ну можно потом еще написать до единички что это специальный","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3045s"},{"start_seconds":3053,"text":"кейс n равняется одному вот мы написали вот такие конструкции да","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3053s"},{"start_seconds":3061,"text":"но как бы не понятно что с этим делать потому что тут вроде как мы паникуем да ну давайте для начала мы написали эти","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3061s"},{"start_seconds":3069,"text":"богатстве посмотрим что они действительно подают мы запускаем кортес и мы видим совершит что фибоначчи окей","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3069s"},{"start_seconds":3077,"text":"спасибо на чьи это вот тест вины негативном unfelt и зерна","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3077s"},{"start_seconds":3088,"text":"давайте опять посмотрим каким не на каждой из этих тестов падает смотрим вывода теста с названием тест негативном","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3088s"},{"start_seconds":3096,"text":"смотрим тест на ветер нам паниковал с сообщением -1 отрицательное число","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3096s"},{"start_seconds":3104,"text":"окей да то есть в данном случае это мы увидели что вот эта причина почему это тест упал","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3104s"},{"start_seconds":3111,"text":"это то что то что мы хотели и здесь мы там посмотрим что здесь была","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3111s"},{"start_seconds":3119,"text":"ошибка что is not right arm иначе что опять же но и не принимается окей мы с вами видели","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3119s"},{"start_seconds":3128,"text":"что-нибудь из прошел два теста упала а как же нам сделать если мы хотим ну однозначно утверждать что вот этот должен проводиться и вот этот с должен","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3128s"},{"start_seconds":3137,"text":"провалиться это так называемое не готти негативное тестирование да то есть мы заранее знаем в каких случаях у нас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3137s"},{"start_seconds":3146,"text":"должен провалиться и мы эти случаи описываемых учитывая как же нам сделать чтобы утверждать что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3146s"},{"start_seconds":3155,"text":"это в этом тесте это тот должен не пройти и он должен запаниковать и должен не претендуем запаниковать опять же с","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3155s"},{"start_seconds":3163,"text":"помощью аннотации то есть мы добавляем вот такую вот аннотацию которым указываем что этот тест должен паниковать и здесь трогаем аннотацию","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3163s"},{"start_seconds":3172,"text":"когда же указом что тест должен паниковать окей это вроде понятно да","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3172s"},{"start_seconds":3181,"text":"надеюсь надежда если нет то пишите а также врать как мы с вами уже говорили","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3181s"},{"start_seconds":3191,"text":"во первых есть функция во-первых тесты запускаются изначально 0 потоках многопоточная извините то есть если вам","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3191s"},{"start_seconds":3200,"text":"нужно выставить какой-то необходимое количество потоков вы можете это выставить самостоятельно вручную указывая аргумент","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3200s"},{"start_seconds":3210,"text":"опять же если вы работаете до базы данных про допустим не хотите чтобы это было многопоточность потому что у вас синхронная базы данных и вы не хотите","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3210s"},{"start_seconds":3219,"text":"пытаться параллельно не обращаться и тогда люди так и у вас могут быть еще включения любые ваши причины указали","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3219s"},{"start_seconds":3226,"text":"необходимое количество потоков так же как и я вам говорил вы можете запускать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3226s"},{"start_seconds":3237,"text":"какие-то тесты какой-то определенный теста может указать что тест фибоначчи вы можете указать что вы хотите","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3237s"},{"start_seconds":3245,"text":"запустить все тесты которые называются ни каких то есть если у вас есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3245s"},{"start_seconds":3252,"text":"негативном наверно и если вы напишете ты остановите","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3252s"},{"start_seconds":3259,"text":"у вас запустится под множество тестов которые содержатся в названии префикс тест никаких данном случае это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3259s"},{"start_seconds":3268,"text":"делать опять же с помощью команды к роботов вы потом вы указываете dvd то есть 2-3 коротких и после этого","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3268s"},{"start_seconds":3277,"text":"указывайте префикса по которому нужно отфильтровать также как мы сами уже разобрались","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3277s"},{"start_seconds":3286,"text":"некоторые тесты можно регулировать с помощью добавления атрибут alt и некоторые тесты можно обозначать с","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3286s"},{"start_seconds":3295,"text":"помощью а требуют ошибок то есть в данном случае этот атрибут показывает","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3295s"},{"start_seconds":3302,"text":"что этот метод должен паниковать это все","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3302s"},{"start_seconds":3308,"text":"с вами мы рассматривали юнит-тесты юнит-тесты это в принципе самое важное","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3308s"},{"start_seconds":3317,"text":"что нам нужно было смотреть то есть для чего использовать элементы чтобы тестировать ваши какие-то конкретные модули написали какой-то мода к примеру","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3317s"},{"start_seconds":3326,"text":"для модуль до арифметики над фигурами то есть у вас там или прямоугольнике","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3326s"},{"start_seconds":3334,"text":"квадрат и круги треугольники и так далее вы написали какой-то мудростью нет какой то юнит","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3334s"},{"start_seconds":3340,"text":"unity до вашего модуля в котором вы проверяете что вы react на вы читаете площадь конкретно вы читаете периметр и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3340s"},{"start_seconds":3349,"text":"другие значения до вашего модуля с помощью не теста вы проверяете корректор с вашего модуля точнее даже","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3349s"},{"start_seconds":3357,"text":"некорректность проверяете отсутствие богов до того кода который описываете но также существует такого понятия как","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3357s"},{"start_seconds":3365,"text":"интеграционных тестов интеграционные тесты конкретно на этой лекции мы не будем подробно с вами разбирать потому","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3365s"},{"start_seconds":3372,"text":"что на текущий момент я думаю всем будет очевидно их польза но это будет очень полезно на лекциях про мир потому что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3372s"},{"start_seconds":3381,"text":"вне это очень актуально при тестировании спор контрактов что же такое интеграционные тесты","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3381s"},{"start_seconds":3388,"text":"интеграционные тесты когда вы хотите проверить взаимодействие нескольких модулей вашего вашего допустим","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3388s"},{"start_seconds":3398,"text":"приложения или вашей библиотеке взаимодействие этих модулей между собой как в данном случае врач создать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3398s"},{"start_seconds":3408,"text":"интеграционных написание самих тестов у вас будет ровно так точно такое же ничего у вас не будет отличаться","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3408s"},{"start_seconds":3416,"text":"но если у вас юнит-тесты они описаны вот конце вашего файла да вот например в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3416s"},{"start_seconds":3422,"text":"конце поломаем конца вашего конкретно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3422s"},{"start_seconds":3428,"text":"скажем с то интеграционные тесты они у вас просто должны лежать в","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3428s"},{"start_seconds":3437,"text":"отдельной папке восходы же в парке с россии интеграционные тесты у вас будет лежать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3437s"},{"start_seconds":3446,"text":"в парке тест опять же если говорить про интеграционный июня тест есть разница","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3446s"},{"start_seconds":3454,"text":"потому как собираются программа как собирается бинарник сам но такая","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3454s"},{"start_seconds":3464,"text":"это не столь принципиально для нас важно конкретно конкретно их концептуально использованию не тест это если вы хотите","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3464s"},{"start_seconds":3472,"text":"протестировать модуль интеграционные тесты если вы хотите проверить потестировать взаимодействия ваших и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3472s"},{"start_seconds":3480,"text":"интеграционные тесты находятся в специальной директории которые вы создаете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3480s"},{"start_seconds":3488,"text":"вот собственно это наверное а сам но это что мы я хотел с вами рассмотреть поводу","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3488s"},{"start_seconds":3495,"text":"тестирование задавайте свои вопросы также хочу обратить ваше внимание что на","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3495s"},{"start_seconds":3505,"text":"следующей неделе у нас начинаются модули по нерв манера протокол по","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3505s"},{"start_seconds":3512,"text":"написанию smart контрактов и более того для вас у меня есть отличная новость то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3512s"},{"start_seconds":3519,"text":"что этот модуль по ним протокол большую его часть или полностью будет вести","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3519s"},{"start_seconds":3526,"text":"другой человек и это будет ввести очень опытный разработчик из мира протокол","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3526s"},{"start_seconds":3532,"text":"возможно кто из вас находится до 300 пространстве текущем что происходит","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3532s"},{"start_seconds":3541,"text":"вокруг вам следите за другими какими-то блокчейн проектами и так далее возможно этого человека в знаете ну пока текущий момент пусть для","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3541s"},{"start_seconds":3550,"text":"вас это будет небольшой сюрприз но это я думаю вам очень понравится я сам судовой","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3550s"},{"start_seconds":3557,"text":"сэм посещать все эти реакции потому что человек его очень интересный очень","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3557s"},{"start_seconds":3565,"text":"харизматичный и я думаю вы все получите удовольствие от просмотра в одессе вот","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3565s"},{"start_seconds":3572,"text":"еще на секунду до здесь нет не показала собственно вывод что в данном случае","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3572s"},{"start_seconds":3578,"text":"когда мы запустили когда мы запустили","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3578s"},{"start_seconds":3585,"text":"вот этот наш код в котором мы указали что вот эти два теста должны паниковать мы выводим можем конкретно увидеть что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3585s"},{"start_seconds":3593,"text":"здесь показывать название теста здесь показывает что тесты прошли окей и более того здесь указано суффиксом что эти тесты должны","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3593s"},{"start_seconds":3602,"text":"паниковать и при этом они окей пирс они пони эти тесты паниковали но при этом это окей да извините что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3602s"},{"start_seconds":3610,"text":"сюда только один сайт показать вот сейчас я посмотрю какие вопросы у нас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3610s"},{"start_seconds":3616,"text":"есть про несколько потоков я ответил же не ответил ни","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3616s"},{"start_seconds":3624,"text":"мод полчаса сьюты dt станет разбивке по группам тестов до теста привет как модулям","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3624s"},{"start_seconds":3634,"text":"[музыка]","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3634s"},{"start_seconds":3640,"text":"вложение ответил есть какие-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3640s"},{"start_seconds":3650,"text":"рекомендации по организации кадре тестов выделены отдельные файлы с тестами в отдельных каталогах и допускается перемешивать коды теста драках адау-мата","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3650s"},{"start_seconds":3658,"text":"да у меня есть рекомендации этого смотрите я бы на вашем месте пользовался","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3658s"},{"start_seconds":3667,"text":"бы такой практикой а вот я предпочитаю пользоваться примеру и вот у вас есть модуль до него у вас есть какое-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3667s"},{"start_seconds":3674,"text":"количество ресурсов 35 и слова не небольшие это короткий но и понятно дело что если у вас условно вот занимают он","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3674s"},{"start_seconds":3683,"text":"30 строк а при этом тест у вас занимают там скажем тысячу строк о наверное есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3683s"},{"start_seconds":3690,"text":"смысл разделить этого в отдельный файл и опять же по поводу с тестами в отдельных каталогах здесь я вам объяснил разницу брат этому","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3690s"},{"start_seconds":3698,"text":"самом деле важно если у вас лежит совпали с в директория сельский это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3698s"},{"start_seconds":3704,"text":"будет у вас по умолчанию unity станет с","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3704s"},{"start_seconds":3710,"text":"уважали директории с корня проекта это будет считаться интеграционный тест так","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3710s"},{"start_seconds":3720,"text":"следующий вопрос если аналоги бифур лич который мы документ каждого теста для стирки при работе тестов по машине нет","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3720s"},{"start_seconds":3729,"text":"но ничто вам не мешает самим написать такую конструкцию использовать существующий проект когда используется","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3729s"},{"start_seconds":3737,"text":"шорт по никто запаниковал статистике даст вам будет написано что он пас если не запаниковал с таким префиксом по будет style","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3737s"},{"start_seconds":3744,"text":"даша верно как вы просто написали до того как я вот показал этот сайт как вы видите я добавил супа ник и у нас тест","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3744s"},{"start_seconds":3753,"text":"паникуют и мы в результате видим что паниковал действительно и видим суффикс","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3753s"},{"start_seconds":3760,"text":"что он должен был паниковать посмотрите вывод тестов вы конкретно сразу видите что с запаниковал но опять же это ваш тест при этом не","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3760s"},{"start_seconds":3769,"text":"запаникует а вы указали что он должен запаниковать тогда это будет ошибкой .","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3769s"},{"start_seconds":3773,"text":"быть написано holes что ожидалось они как тесте но не запаниковал а можно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3773s"},{"start_seconds":3781,"text":"писать что-то них прямо перед кодом который паникует не перед тестом нет но до этого не что он не мешает написать несколько тестов которые будут","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3781s"},{"start_seconds":3790,"text":"паниковать правильно то есть если у вас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3790s"},{"start_seconds":3796,"text":"не очень о кей 1 пример было бы в данном случае объединить вот эти вот два теста в 1 ну","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3796s"},{"start_seconds":3804,"text":"как бы вы могли бы до объединить их в один потому что как бы тестируем негативные случаи но это плохая практика","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3804s"},{"start_seconds":3812,"text":"потому что допустим вы и вдруг у вас какой то из этих","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3812s"},{"start_seconds":3819,"text":"функциональностью перестал паниковать это как будет окей этого сразу будет видно что продается если вы допустим","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3819s"},{"start_seconds":3827,"text":"объедините эти два теста в один и скажи 1 из них не будет паниковать чтобы об этом не узнаете поэтому старайтесь","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3827s"},{"start_seconds":3835,"text":"делать тесты маленькими возможности насколько можно настолько маленький понятное дело что вот в таком случае","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3835s"},{"start_seconds":3842,"text":"когда вы тестируете фибоначчи вы здесь могли бы написать допустим протестировать число там 1 в ряду 5 10","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3842s"},{"start_seconds":3851,"text":"там 100 и 1000 а то есть несколько чисел примеру протестировать и из какой-то допустим огромное число в ряде протестировать что они работают тут и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3851s"},{"start_seconds":3860,"text":"букей тем или и потому что вы проверяете непосредственно каждое число с помощью макроса acer пик был до негативного","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3860s"},{"start_seconds":3868,"text":"тестирования все-таки лучше делать отдельные тест skates и окей так если","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3868s"},{"start_seconds":3881,"text":"еще вопросы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3881s"},{"start_seconds":3899,"text":"да еще ожидаю вопросах какое-то время","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3899s"},{"start_seconds":3903,"text":"буквально минуту да кстати я очень","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3903s"},{"start_seconds":3913,"text":"советую вам вот после сегодняшней лекции","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3913s"},{"start_seconds":3917,"text":"[музыка]","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3917s"},{"start_seconds":3918,"text":"взять ваше домашнее задание которое вы сделали и покрыть его тестами постарайтесь покрыть как можно больше ну","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3918s"},{"start_seconds":3925,"text":"а также нужно делать избыточно то что и между по достаточно не будь то что если вы возьмете вот этот матч и начнете","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3925s"},{"start_seconds":3934,"text":"здесь вручную проверять первые 100 чисел фибоначчи ну по-моему это будет избыточная вишня","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3934s"},{"start_seconds":3941,"text":"вы можете проверять там да вот каким то марок элемент типа 1 10 тысяч на число","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3941s"},{"start_seconds":3947,"text":"миллиона часов тогда имеет смысл потому что вы проверяете скажем какой-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3947s"},{"start_seconds":3954,"text":"прогрессе если вы допустим ожидаете что вдруг ваш код будет неправильно работать на каких-то больших числа по какой-то","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3954s"},{"start_seconds":3961,"text":"причине тогда это имеет смысл для вот но при этом вручную проверять все значения","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3961s"},{"start_seconds":3968,"text":"нет смысла поэтому да пожалуйста покройте свое домашнее задание тестами опять же","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3968s"},{"start_seconds":3977,"text":"группах обменяйтесь его между собой когда обменяйтесь заодно возможно увидите кто-то из вас вы видите что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3977s"},{"start_seconds":3985,"text":"кто-то допустим лучше придумал вариант как это протестировать как-то сделал более органично более коротко это","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3985s"},{"start_seconds":3993,"text":"протестировал случай который вы не учите возможно то есть навык тестирование это отдельный навык и его очень хорошо","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=3993s"},{"start_seconds":4003,"text":"приобретать с опытом то есть конечно есть масса ресурсов на этот счет во книг но здесь практика решают непосредственно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4003s"},{"start_seconds":4012,"text":"практика написания тестов потому что вот вы практика написания тестов вам очень пригодится в том числе при работе с","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4012s"},{"start_seconds":4020,"text":"мосмарт контрактами на нервы протокол вот на следующем модуле лекция будет","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4020s"},{"start_seconds":4028,"text":"вести другое очень замечательный человек я думаю вся из вас получится удовольствие","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4028s"},{"start_seconds":4035,"text":"ну а свою очередь я очень надеюсь что вам был интересен может просто что вы за","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4035s"},{"start_seconds":4043,"text":"время прохождения этого модуля при люди какие-то дополнительные для себя навыки ну как минимум до навык работы с 1 диска","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4043s"},{"start_seconds":4052,"text":"многомерный раз конечно мы не можем вам дать за такое маленькое количество","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4052s"},{"start_seconds":4059,"text":"лекции всю информацию по расту мы постарались сделать материал максимально сжатый пакет постарались подать его","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4059s"},{"start_seconds":4069,"text":"максимально понятным чтобы всем кто присутствует было понятно о чем идет речь вот но мы конечно понимаем что","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4069s"},{"start_seconds":4077,"text":"где-то мы могли дать какие-то небольшие ошибки где-то что-то могли рассказывать не совсем понятно кому то из вас","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4077s"},{"start_seconds":4084,"text":"поэтому пожалуйста присылайте фидбэк что вам понравилось по этой части да по модулей по 1 что вам не понравилось мы приветствуем","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4084s"},{"start_seconds":4093,"text":"любой фидбэк но нам было очень приятно работать с вами вы очень классно","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4093s"},{"start_seconds":4100,"text":"аудитория много людей дошло до конца и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4100s"},{"start_seconds":4105,"text":"вы очень хорошо задаете вопросы то есть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4105s"},{"start_seconds":4113,"text":"некоторые вопросы очень интересные заковыристые очень круто мы это ценим это значит что вы интересуетесь до чуть","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4113s"},{"start_seconds":4120,"text":"больше чем мы даем вам опять же советую как минимум до того чтобы больше освоить","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4120s"},{"start_seconds":4128,"text":"раз пройти разбух на официальном сайте роста также догоним раз баек забыл конечно да эти","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4128s"},{"start_seconds":4136,"text":"книги изначально на английском и адаптация на русском и не задерживаются но при этом но при этом конечно от тех","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4136s"},{"start_seconds":4147,"text":"книгах намного больше материала примерно в чем мы вам дадим так я вижу вопрос все девять лекции михаил все 9 лекция будет","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4147s"},{"start_seconds":4156,"text":"вести один человек спасибо за лекция просто этот язык действительно взял самая лучшая других ради вам спасибо большое что вы","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4156s"},{"start_seconds":4165,"text":"присутствовали по поводу всех 9 лекция нет речь идет про мир протокол по нир протоколу ожидаются 5 лекции","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4165s"},{"start_seconds":4173,"text":"опять лекция будет вести один человек да ну возможно будут какие-то небольшие изменения но пока такой план оставшиеся","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4173s"},{"start_seconds":4182,"text":"4 лекции по только тот будут и там ожидаются ну наверно как минимум два","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4182s"},{"start_seconds":4188,"text":"спикера вот и соответственно попадут спикеры мы объявили чуть чуть чуть позже","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4188s"},{"start_seconds":4197,"text":"сам язык java что у вас тоже такое мнение что этот язык замолчать грубить","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4197s"},{"start_seconds":4205,"text":"породить хочу вам кстати такую роста статистику то есть в этом году опять же 11 следования самый любимый язык","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4205s"},{"start_seconds":4214,"text":"программирования или и сейчас этот альбом язык по вопросам разработчиков правильно раз при этом нельзя сказать","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4214s"},{"start_seconds":4221,"text":"что самый популярный язык потому что как я говорю такая адаптация языка от компаниях растут медленно но в последнее время","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4221s"},{"start_seconds":4229,"text":"очень быстро и на текущий момент я вам скажу так вакансий по родству намного больше чем программистов нравится","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4229s"},{"start_seconds":4238,"text":"поэтому улучшайте свой раз не обязательно только среди блокчейна проходить книги по росту и я думаю вам","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4238s"},{"start_seconds":4247,"text":"очень понравится поэтому да ну в другом случае вы как мне маслом до","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4247s"},{"start_seconds":4255,"text":"воспользуетесь во время прохождения курса по нету такого smart контрактом и по работе сколько тот как бы тоже","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4255s"},{"start_seconds":4263,"text":"она расти поэтому вы еще попрактикуйтесь на сегодня лице закончилась и курс по","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4263s"},{"start_seconds":4274,"text":"растут закончился с последующим деле у нас будет курс по ней и увидимся сами","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4274s"},{"start_seconds":4283,"text":"огромное всем спасибо потом продолжайте продолжаете работать всем хороших выходных и","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4283s"},{"start_seconds":4291,"text":"и ждем вас на следующих модулях всем спасибо","url":"https://www.youtube.com/watch?v=KI8j9jv0CPA&t=4291s"}],"youtube_url":"https://youtube.com/watch?v=KI8j9jv0CPA","url":"https://near-pedia.xyz/videos/KI8j9jv0CPA"}