0.1 + 0.2 !== 0.3 это следствие того как раз что JS вполне точно ведет себя с float'ами! и именно так ведет себя с ними процессор! Не знаю какие языки это автоматически пытаются исправить, потому что именно так корректно. Дело в том, что литералы 0.1 и 0.2 написанные в соурсе даже не попадают в таком виде в рантайм, еще на стадии компиляции ими инициализируются float переменные. И т.к. ни одно из этих чисел не имеет конечного представления в степени 2ки (это легко проверяется многократным умножением на 2 - дробная часть всегда остается, а значит и биты разрядов после запятой зациклены) из-за этого они не представимы точно и на самом деле вводя так float'ы вы на самом деле вводите 0.10000000000000001 + 0.20000000000000002 в итоге получается 0.30000000000000004 потому у 0.2 старший единичный бит несет =0.125, тогда как у 0.1 это =0.0625 и это означает, что у числа 0.20000000000000002 на самом деле нет возможности прибавить единичную долю в последний разряд. Т.к. на битовом уровне там не хватает значащих бит, из-за того что на один больше в старшем разряде задействовано) Потому при сложении таких чисел этот единичный разряд округляется в большую сторону по правилу ближайшего среднего (в двоичной системе 1 - это половинная граница, так же как и 5 в 10ой) В float'ах всегда такое происходит. И JS в этом не уникален. Напротив это четко соответствует стандарту. (Любой сишник вам скажет, что под float общепринято подразумевать DoublePrecission, если не указанно иное) Языки вроде Питона не имеют такой "ошибки" лишь потому что они реализуют вообще не DoublePrecission, там вообще длинная арифметика - но она не ускоряется процессором, потому считать на питоне дорого. (любая неаккуратная операция превращается во множество операций) - т.е. на более глубоком рассмотрении проясняется что если 0.1 + 0.2 не будет давать 0.30000000000000004 - Это ошибка. Вместо автоматического приведения точности в JS'е позаботились и из коробки дали методы .toFixed developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed .toPrecision developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision Если разобраться с ними станет ясно почему это нельзя делать автоматически без потерь точности. Потому что то хотите верьте хотите проверьте, из того что могут содержать в себе float'ы, вы на самом деле вводите это: 0.1.toPrecision(100) = 0.1000000000000000055511151231257827021181583404541015625 0.2.toPrecision(100) = 0.200000000000000011102230246251565404236316680908203125 Простое решение использовать конструкцию: +(a+b).toPrecision(15) при каждом переводе числа в 10ую систему !!! которое конечно происходит когда вы преобразуете его в строку !!! Без претензий к Владилену. Пояснение этих фактов бы точно сбило с толку всех осваивающих сабж Юнит Тест. Потому видео курс снимает он, а я пишу этот комментарий, так сказать факультативная инфо =)
Раз уж подняли в топ, порылся еще: Как вы понимаете, если ошибку округления повторить в цикле миллион раз, то в худшем случае она будет в миллион раз больше, т.е. применительно к данному примеру останется 5 символов после запятой... (на практике отклонение нормально распределено, но нам однажды осваивать космос) Потому есть лекарство. Алгоритм Кэхэна (компенсационное суммирование) исправляющий ошибку округления при многократном сложении. Он оригинален тем, что для компенсирования ошибки округления он использует ее саму! Обычно такое пригождается на сях, но я переделал в однострочный хелпер на JS /** @return [коррекция, сумма]:number[] - двусоставный float * @param прибавляемое:number - маленькое float (что может потеряться при сумме) * @param [коррекция, сумма]:number[] - двусоставный float */ var kahanSum=(add,[surplus,sum])=>[-sum+(sum+=add-=surplus)-add,sum] //test('Cложение Number.MAX_SAFE_INTEGER миллион раз с одной миллионной долей', () => { let surplus_sum = [0,Number.MAX_SAFE_INTEGER]; for(let n = 1000000; n--;) surplus_sum = kahanSum(0.000001, surplus_sum);
console.log( surplus_sum = kahanSum(-Number.MAX_SAFE_INTEGER, surplus_sum) ) // expect(surplus_sum.pop()).toBe(1); // разность должна составить 1 т.к. миллион * милионных долей это = 1 // несмотря на то что даже +0.1 не может сохраниться в float если там уже MAX_SAFE_INTEGER // ошибка компенсатора увы тоже может копится, но прийдется "переполниться дважды" //}) // Чисто алгебраически, surplus член всегда должен бы равняться нулю. Берегитесь слишком оптимизирующих оптимизаторов! // Работает с высокой точностью до тех пор, пока add находиться в пределах ошибки излишка, // потому предпочтительно упорядочить слогаемые по убыванию их абсолютной величины // тест запускабелен в голой консоли см. ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9A%D1%8D%D1%85%D1%8D%D0%BD%D0%B0#:~:text=%D0%92%20%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B5%20%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%20%D0%9A%D1%8D%D1%85%D1%8D%D0%BD%D0%B0,%D0%BF%D0%BE%20%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8E%20%D1%81%20%D0%BD%D0%B0%D0%B8%D0%B2%D0%BD%D1%8B%D0%BC%20%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4%D0%BE%D0%BC.
@@ЕвгенийПеревалов-ч1т странно что я такого делаю, но этот вопрос в той или иной форме последнее время зачастил... Но ваша форма получилась самой символичной, технорелигия и все такое... На самом деле просто долго живу, не останавливаясь в познании
Владилен, у меня есть 1 вопрос к твоему курсу. возможно ли с тобой связаться по средствам мессенджеров и задать 2 вопроса, и украсть буквально 2 минуты твоего времени
Скажи пожалуйста что за расширение у тебя в редакторе (которое при вызове функции пишет переменные (a: 41, b: 1"), или обозначает функцию(fn: ()=>{})....??? Есть ли такое для редактора "VS code"??? Может кто знает...? Спасибо за годный контент :) Лучший*
Лучший урок по jest, который я встречал на Ютубе! Очень помог. Ещё я бы добавил такие базовые вещи, как: 1) возможность употреблять функцию `it` вместо `test`; 2) аргумент `done` коллбэка функции `test` / `it`; 3) функция expect.assertions. P.S. 1:23:50 Здесь замоканный респонс нужно обернуть в Promise.resolve: `axios.get.mockReturnValue(Promise.resolve(response))`, так как в оригинальном методе аксиоса возврается именно промис. А на видео нет ошибки только потому, что в функции Ajax.get (файл async.js) используется асинхронная функция (`await` умеет обрабатывать и данные, не обёрнутые в промисы). А если использовать `Promise.prototype.then`, то при условии, если возвращается не промис, будет ошибка "TypeError: axios.get(...).then is not a function".
Зашёл под одной учеткой - поставил лайк, колокольчик... Вышел, зашёл под второй учеткой - поставил лайк и колокол соответственно. Вышел, зашёл под третьей учеткой - посмотрел видео и проделал все остальное) Спасибо за ваш труд!
спасибо всем кто делает видеоуроки, вы делаете мир проще =) не знаю тут оптимизирует ли по словам)) javascript, nodejs, unit test, юнит тестирование, видео урок
Это лучшее, что можно найти на просторах русскоязычного интернета. Очень хочется больше новых видео! Приятно смотреть, слушать и учиться! Спасибо большое, Владилен!
Спасибо за видео! Всё по полочкам и без лишнего мусора. До этого кучу материала прочитал, а в голове только увеличивалась каша. Теперь вроде появился небольшой порядок. И отдельно понравились реализации встроенных функций, реально помогает лучше понимать устройство js.
Я как всегда, после твоих видео обалдел, как все несложно, ты как всегда на высоте. И число 42 на месте)) Все как обычно, по фэншую Спасибо, Владилен, огромное
Спасибо! Очень круто объяснил. 42:37 не обязательно глобально ставить Jest, можно просто вызвать его через ./node_modules/.bin/jest, так как он уже установлен локально
Спасибо за актуальный для меня контент! Я подсел на ваши курсы почти с самого начала канала) Вы сильно выделяетесь среди современных блогеров-преподавателей. Больших вам успехов как коммерческих так и профессиональных!
Поставил лайк, пишу комментарий, подписываться ещё не спешу, но возможно в будущем, а колокольчик не нашёл. За видео спасибо. Очень познавательно и интересно.
Спасибо за ролик. Теперь для многих Unit Тестирование при помощи Jest в Javascript выглядит не таким страшным. С нетерпением ждем ролики по интеграционному и e2e-тестированию.
Спасибо за урок. Ждем другие темы по тестированию. В крупных проектах много времени уделяется тестированию. Ждем другие видео и ожидаем там слова, "теперь пишем тесты, кто еще не в курсе смотрите мои уроки на канале".
Очень бы хотелось увидеть остальные виды тестирования, я как тестировщик очень заинтересован!!! Буду ждать видео! Лучший контент по JS , приятно смотреть твой контент.
Флаг и есть минус родной)) Часто в твоих роликах слышу: флаг минус д))) флаг д) Спасибо, так помогаешь в развитии со своими роликами, продолжай в том же духе
Очень отличная тема ) Спасибо ) Было бы замечательно если бы ты рассмотрел тестирование в связке Jest с react testing library. И е2е на примере Cypress. Буду чрезмерно благодарен )
@@dreamer_vi905 почему спрашиваю, пришло время учить тестирование, а видео вышло 3 года назад, вот и думаю, стоит ли смотреть, или по доке учить. Спасибо за ответ)
Владилен, начал изучать тестирование. Замечательный урок. Но есть вопрос. Использую MobX как менеджер состоянии для React приложений. Написал обёртку для axios под типизацию запросов компании в которой есть трансформатор данных из серверных в реактивные. Иногда случается, что у меня такой запрос ломается и чтобы найти проблему дважды тратил не один час. Под такой кейс Ваш последний пример также подходит ? Буду очень благодарен ответу !
Команда - нпм инстОл. Тулза для тестирования моЧа, правильно звучит - мока. мЭтчеры, от слова мАтч) Иногда как произнесешь, немного испанский стыд вызывает)) А вообще, спасибо за труды, недавно натолкнулся на канал, в предверии смены проекта - пригодились некоторые темы для закрепления знаний или даже узнать что-то новое узнать.
Так структурировано, развернуто, доходчиво и главное интересно никто на просторах ютуба не делает, просто душевное спасибо. Отдельно радуют комментарии под роликом, ни одного не увидел с непонятным куском кода и вопросом почему не работает, за это и аудитории спасибо)
Демон, как ты это делаешь ? Я только подумал о тестировании... И так уже не первый раз с твоими видосами ! ;) Спасибо большое ) пойду самовар ставить и в бой =D
Привет Владилен, было бы интересно посмотреть как ты используешь Angular Material Table + удалённую сортировку по столбцам и другие фичи для таблиц в Ангуляре.
Спасибо за видео. Есть вопросы: 1. Возможно ли сконфигурировать так, чтобы если некоторый тест не проходит - останавливалось дальнейшее тестирование 2. возможно ли отметить некоторые тесты типа "нереализовано". Чтобы они не выполнялись, но в то же время отмечались красным (чтобы не тратить время на запуск нереализованного функционала при разработки через тесты)
видимо это будет глупый вопрос, т.к только открыл первое видео по тестам. в чем смысл изучать целый фреймворк, чтобы тестировать функцию sum(1,2), когда можно просто в console.log узнать правильно ли она складывает.
Спасибо за видео! Всё доступно и понятно. Вот только вопрос - как использовать jest на фронте, чтобы он не ругался на import. Нагуглить можно кучу разнообразных решение разной степени тяжести. Но, мне интересен, самый просто кейс - новое приложение, устанавливаю webpack, jest... что ещё нужно?
Предположу, что нет. Как правило, те, кто выбирает Node.js (а у автора есть уроки по ноде, не только здесь) и выбирают его потому, что не хотят учить еще один язык.
Rustam Tishkov я не думаю, что он как-то глубоко его постиг, а так понятно, что все, кто приходит в вэб первым делом трогают PHP. Я не исключение, знаю, что это такое и даже что-то напишу. Но знаю ли я его? Нет. Ничего серьезного я на нем не сотворю. Чтобы работать с языком, надо его знать и использовать регулярно. Если подходить с этой точки зрения, я лично знаю и Python, и C#, и C, и C++, и даже Huskell))) Но как адекватный человек, я понимаю, что заявлять об этом глупо. Особенно про Haskell, по которому я прочитал 2 книги, но многое так и не понял, а сейчас я вообще не вспомню даже синтаксис, хотя года 3 назад что-то простенькое писал на нем.
мне кажется, если кому-то не нравится произношение на английском, они могут пойти и посмотреть те же туторы на английском, а на русском и так все понятно. Нормальный у вас английский, все понятно
Мне кажется, что в описании к видео есть небольшая опечатка. " и про реализацию популярный функций " - скорее всего, имелось ввиду "популярных функций"
0.1 + 0.2 !== 0.3 это следствие того как раз что JS вполне точно ведет себя с float'ами! и именно так ведет себя с ними процессор! Не знаю какие языки это автоматически пытаются исправить, потому что именно так корректно. Дело в том, что литералы 0.1 и 0.2 написанные в соурсе даже не попадают в таком виде в рантайм, еще на стадии компиляции ими инициализируются float переменные. И т.к. ни одно из этих чисел не имеет конечного представления в степени 2ки (это легко проверяется многократным умножением на 2 - дробная часть всегда остается, а значит и биты разрядов после запятой зациклены) из-за этого они не представимы точно и на самом деле вводя так float'ы вы на самом деле вводите 0.10000000000000001 + 0.20000000000000002
в итоге получается 0.30000000000000004 потому у 0.2 старший единичный бит несет =0.125, тогда как у 0.1 это =0.0625 и это означает, что у числа 0.20000000000000002 на самом деле нет возможности прибавить единичную долю в последний разряд. Т.к. на битовом уровне там не хватает значащих бит, из-за того что на один больше в старшем разряде задействовано) Потому при сложении таких чисел этот единичный разряд округляется в большую сторону по правилу ближайшего среднего (в двоичной системе 1 - это половинная граница, так же как и 5 в 10ой)
В float'ах всегда такое происходит. И JS в этом не уникален. Напротив это четко соответствует стандарту. (Любой сишник вам скажет, что под float общепринято подразумевать DoublePrecission, если не указанно иное) Языки вроде Питона не имеют такой "ошибки" лишь потому что они реализуют вообще не DoublePrecission, там вообще длинная арифметика - но она не ускоряется процессором, потому считать на питоне дорого. (любая неаккуратная операция превращается во множество операций)
- т.е. на более глубоком рассмотрении проясняется что если 0.1 + 0.2 не будет давать 0.30000000000000004 - Это ошибка.
Вместо автоматического приведения точности в JS'е позаботились и из коробки дали методы
.toFixed developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
.toPrecision developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision
Если разобраться с ними станет ясно почему это нельзя делать автоматически без потерь точности.
Потому что то хотите верьте хотите проверьте, из того что могут содержать в себе float'ы, вы на самом деле вводите это:
0.1.toPrecision(100) = 0.1000000000000000055511151231257827021181583404541015625
0.2.toPrecision(100) = 0.200000000000000011102230246251565404236316680908203125
Простое решение использовать конструкцию:
+(a+b).toPrecision(15) при каждом переводе числа в 10ую систему
!!! которое конечно происходит когда вы преобразуете его в строку !!!
Без претензий к Владилену. Пояснение этих фактов бы точно сбило с толку всех осваивающих сабж Юнит Тест.
Потому видео курс снимает он, а я пишу этот комментарий, так сказать факультативная инфо =)
Раз уж подняли в топ, порылся еще:
Как вы понимаете, если ошибку округления повторить в цикле миллион раз, то в худшем случае она будет в миллион раз больше, т.е. применительно к данному примеру останется 5 символов после запятой... (на практике отклонение нормально распределено, но нам однажды осваивать космос)
Потому есть лекарство.
Алгоритм Кэхэна (компенсационное суммирование) исправляющий ошибку округления при многократном сложении. Он оригинален тем, что для компенсирования ошибки округления он использует ее саму! Обычно такое пригождается на сях, но я переделал в однострочный хелпер на JS
/** @return [коррекция, сумма]:number[] - двусоставный float
* @param прибавляемое:number - маленькое float (что может потеряться при сумме)
* @param [коррекция, сумма]:number[] - двусоставный float */
var kahanSum=(add,[surplus,sum])=>[-sum+(sum+=add-=surplus)-add,sum]
//test('Cложение Number.MAX_SAFE_INTEGER миллион раз с одной миллионной долей', () => {
let surplus_sum = [0,Number.MAX_SAFE_INTEGER];
for(let n = 1000000; n--;) surplus_sum = kahanSum(0.000001, surplus_sum);
console.log( surplus_sum = kahanSum(-Number.MAX_SAFE_INTEGER, surplus_sum) )
// expect(surplus_sum.pop()).toBe(1);
// разность должна составить 1 т.к. миллион * милионных долей это = 1
// несмотря на то что даже +0.1 не может сохраниться в float если там уже MAX_SAFE_INTEGER
// ошибка компенсатора увы тоже может копится, но прийдется "переполниться дважды"
//})
// Чисто алгебраически, surplus член всегда должен бы равняться нулю. Берегитесь слишком оптимизирующих оптимизаторов!
// Работает с высокой точностью до тех пор, пока add находиться в пределах ошибки излишка,
// потому предпочтительно упорядочить слогаемые по убыванию их абсолютной величины
// тест запускабелен в голой консоли
см. ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9A%D1%8D%D1%85%D1%8D%D0%BD%D0%B0#:~:text=%D0%92%20%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B5%20%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%20%D0%9A%D1%8D%D1%85%D1%8D%D0%BD%D0%B0,%D0%BF%D0%BE%20%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8E%20%D1%81%20%D0%BD%D0%B0%D0%B8%D0%B2%D0%BD%D1%8B%D0%BC%20%D0%BF%D0%BE%D0%B4%D1%85%D0%BE%D0%B4%D0%BE%D0%BC.
ты легенда
@@teosrevival Кто или что ты такое?! Омниссия?!
@@ЕвгенийПеревалов-ч1т странно что я такого делаю, но этот вопрос в той или иной форме последнее время зачастил...
Но ваша форма получилась самой символичной, технорелигия и все такое...
На самом деле просто долго живу, не останавливаясь в познании
Голосую за продолжение темы, end to end тестирование и интеграция важнейшие темы, но в интернете представлены минимально.
++++++
++++++++
+
+++
++++
Приятного и продуктивного тестирования)
Привет. Подскажи на сколько сейчас актуальна программа курса по реакту на удеми?
@@vitaliy794 нормас. я вчера купил. актуально. версии практически 16/12и там и там вродь
Владилен, у меня есть 1 вопрос к твоему курсу. возможно ли с тобой связаться по средствам мессенджеров и задать 2 вопроса, и украсть буквально 2 минуты твоего времени
Скажи пожалуйста что за расширение у тебя в редакторе (которое при вызове функции пишет переменные (a: 41, b: 1"), или обозначает функцию(fn: ()=>{})....??? Есть ли такое для редактора "VS code"??? Может кто знает...? Спасибо за годный контент :) Лучший*
Очень хотелось бы увидеть видео про связку бэка и фронта, (бэк связанный с graphql, apollo-express-server, фронт с apollo client, будет ли такое?)
Однозначно нужно про е2е и интеграционные. Можно на примере реакта
Определенно!
Или ангуляра
Блин, это в курсах есть, лучше на Vue
@@braind_bible4845 год спустя выпустить видео JEST & VUE, было бы шикарно )))
++++
Лучший урок по jest, который я встречал на Ютубе! Очень помог.
Ещё я бы добавил такие базовые вещи, как: 1) возможность употреблять функцию `it` вместо `test`; 2) аргумент `done` коллбэка функции `test` / `it`; 3) функция expect.assertions.
P.S. 1:23:50 Здесь замоканный респонс нужно обернуть в Promise.resolve: `axios.get.mockReturnValue(Promise.resolve(response))`, так как в оригинальном методе аксиоса возврается именно промис. А на видео нет ошибки только потому, что в функции Ajax.get (файл async.js) используется асинхронная функция (`await` умеет обрабатывать и данные, не обёрнутые в промисы). А если использовать `Promise.prototype.then`, то при условии, если возвращается не промис, будет ошибка "TypeError: axios.get(...).then is not a function".
лайк тебе братан, недавно только задумался что нужно уметь в тесты, и тут подгон такой. Спс
Зашёл под одной учеткой - поставил лайк, колокольчик... Вышел, зашёл под второй учеткой - поставил лайк и колокол соответственно. Вышел, зашёл под третьей учеткой - посмотрел видео и проделал все остальное) Спасибо за ваш труд!
Беспрецедентный добродетель, спасибо большое за труд. Как всегда все оч. годно.
спасибо всем кто делает видеоуроки, вы делаете мир проще =)
не знаю тут оптимизирует ли по словам))
javascript, nodejs, unit test, юнит тестирование, видео урок
Отличные урок про Jest unit тестирование. Советую всем новичкам. Те кто 0 в тестирование js будет очен познавательно.
Спасибо Владилен.
Воу-воу! Наконец-то про тестирование видос. Давно ждал. У Владилена как всегда контент самый топ!
Это лучшее, что можно найти на просторах русскоязычного интернета. Очень хочется больше новых видео! Приятно смотреть, слушать и учиться! Спасибо большое, Владилен!
Читаете мысли, Владилен! Спасибо! С жадностью смотрю все Ваши видео и с нетерпением ожидаю новых.
Оооо даааа, наконец-то дождался jest от тебя) Спасибо, ты лучший)
Ещё не досмотрел до конца, но уже хочу про интеграционное тестирование!
Спасибо за годный контент!!
Владилен, ты просто не представляешь, насколько вовремя для меня ты выпускаешь это видео! Спасибо.
Спасибо за видео! Всё по полочкам и без лишнего мусора. До этого кучу материала прочитал, а в голове только увеличивалась каша. Теперь вроде появился небольшой порядок.
И отдельно понравились реализации встроенных функций, реально помогает лучше понимать устройство js.
Я как всегда, после твоих видео обалдел, как все несложно, ты как всегда на высоте. И число 42 на месте))
Все как обычно, по фэншую
Спасибо, Владилен, огромное
Спасибо! Очень круто объяснил.
42:37 не обязательно глобально ставить Jest, можно просто вызвать его через ./node_modules/.bin/jest, так как он уже установлен локально
или запустить командой npx jest 02_sync/sync.spec.js (npx как раз будет искать jest в локальной node_modules)
Тестирование реакт компонентов интересно.
Кто посмел дизлайкнуть такую годноту!?! Супер контент.
Большое спасибо за ролик. Хороший вариант поковырять jest и разобраться в его базовых принципах.
Круто что ты есть, Владилен!💘
Спасибо за актуальный для меня контент! Я подсел на ваши курсы почти с самого начала канала) Вы сильно выделяетесь среди современных блогеров-преподавателей. Больших вам успехов как коммерческих так и профессиональных!
+ за интеграционное и e2e тестирование! Очень ждем))
Поставил лайк, пишу комментарий, подписываться ещё не спешу, но возможно в будущем, а колокольчик не нашёл.
За видео спасибо. Очень познавательно и интересно.
Класс! Крутой видос как и всегда! Жду материалы по остальному тестированию с нетерпением
Спасибо за ролик. Теперь для многих Unit Тестирование при помощи Jest в Javascript выглядит не таким страшным.
С нетерпением ждем ролики по интеграционному и e2e-тестированию.
Да давно хотел в тестирование вкатиться и именно jest использовать, спасибо за подгон
Отличное видео! Помогло побороть себя и начать работать с тестами)
Опять годнота подъехала,когда ты все успеваешь?)Спасибо огромное!)
Лайк за ролик, Владилен, давай ролик по каждом виду тестирования)
Спасибо за урок. Ждем другие темы по тестированию. В крупных проектах много времени уделяется тестированию. Ждем другие видео и ожидаем там слова, "теперь пишем тесты, кто еще не в курсе смотрите мои уроки на канале".
Классная подача материала, не останавливайся, твой труд очень полезен 👍
Отличное видео о Unit тестировании с помощью Jest. Спасибо большое!)
Очень бы хотелось увидеть остальные виды тестирования, я как тестировщик очень заинтересован!!!
Буду ждать видео! Лучший контент по JS , приятно смотреть твой контент.
Флаг и есть минус родной)) Часто в твоих роликах слышу: флаг минус д))) флаг д)
Спасибо, так помогаешь в развитии со своими роликами, продолжай в том же духе
Чувак ты самый лучший. Благодарю за новый ролик. Прям вовремя )
Обалдеть) Я об этом попросил в прошлом видео и вуаля!))) Спасибо огромное, Владилен
Не так сложно, как боялся. Спасибо за урок! Будем тренироваться)
Однозначно продолжать тему с тестированием, особенно в связке с vue
Отличное видео. Владилен , спасибо тебе за время и усилия вложенные в создание обучающего материала!
Очень отличная тема ) Спасибо ) Было бы замечательно если бы ты рассмотрел тестирование в связке Jest с react testing library. И е2е на примере Cypress. Буду чрезмерно благодарен )
Как всегда на высшем уровне. Спасибо большое, Владлен!
актуально ли видео на сегодняшний день?
@@Богдан-й3ч Почему нет. Вполне.
@@dreamer_vi905 почему спрашиваю, пришло время учить тестирование, а видео вышло 3 года назад, вот и думаю, стоит ли смотреть, или по доке учить. Спасибо за ответ)
Jest. Unit Тестирование в JavaScript круто что во многом разбираетесь!
Владилен, начал изучать тестирование. Замечательный урок. Но есть вопрос. Использую MobX как менеджер состоянии для React приложений. Написал обёртку для axios под типизацию запросов компании в которой есть трансформатор данных из серверных в реактивные. Иногда случается, что у меня такой запрос ломается и чтобы найти проблему дважды тратил не один час.
Под такой кейс Ваш последний пример также подходит ?
Буду очень благодарен ответу !
Спасибо за работу и такой полезный контент.
Оооо годнота то какая)) Может курс по NextJS? Запульте лайками кто тоже за NextJS (:
В вебшторме можно "вызвать метод" .log у любой конструкции за место того, чтобы писать console.log каждый раз
Спасибо за очередное путешествие в мир js :)
Команда - нпм инстОл. Тулза для тестирования моЧа, правильно звучит - мока. мЭтчеры, от слова мАтч) Иногда как произнесешь, немного испанский стыд вызывает)) А вообще, спасибо за труды, недавно натолкнулся на канал, в предверии смены проекта - пригодились некоторые темы для закрепления знаний или даже узнать что-то новое узнать.
Отлично рассказал, спасибо большое, ждём ещё видео про тестирование 👍
Спасибо за видео! Как всегда все великолепно!:) Было бы реально круто если еще про тестирование UI с enzyme)
Просто топ! Шикарная подача материала!
Ставлю лайк и начинаю смотреть!)
Так структурировано, развернуто, доходчиво и главное интересно никто на просторах ютуба не делает, просто душевное спасибо.
Отдельно радуют комментарии под роликом, ни одного не увидел с непонятным куском кода и вопросом почему не работает, за это и аудитории спасибо)
Спасибо за контент и однозначно голосую за продолжение!
Демон, как ты это делаешь ? Я только подумал о тестировании... И так уже не первый раз с твоими видосами ! ;) Спасибо большое ) пойду самовар ставить и в бой =D
спасибо! очень хочется продолжения:)
Вижу видос Владилена сразу лайк!))
Огромное тебе спасибо! О-о-о-о-чень доходчиво объяснил
ты большой молодец, спасибо тебе за твои видео
ппц, я изучал на английском а ты как всегда это уже запилил
Очень ценная информация! Спасибо тебе огромное за труд :) Было бы хорошо, если бы рассмотрел тему тестирования api на бэке желательно на typescript
*Л. а. й. к. о. с.* за видос.
Увидел тему нового видео -- Лайк авансом))
Спасибо! Про тесты теперь многие говорят.
Спасибо, все по полочкам разложил
Хорошее видео))) очень достойно обьяснил и просто.Спасибо!!
Подскажите, как врубить types/jest на 20:39 на VS Code
Спасибо тебе большое! Тесты наше все
Привет Владилен, было бы интересно посмотреть как ты используешь Angular Material Table + удалённую сортировку по столбцам и другие фичи для таблиц в Ангуляре.
Спасибо Владилен! Отличный контент!
Спасибо за видео. Есть вопросы:
1. Возможно ли сконфигурировать так, чтобы если некоторый тест не проходит - останавливалось дальнейшее тестирование
2. возможно ли отметить некоторые тесты типа "нереализовано". Чтобы они не выполнялись, но в то же время отмечались красным (чтобы не тратить время на запуск нереализованного функционала при разработки через тесты)
Есть test.todo() функция.
Отличное видео! хотелось бы продолжения...
а браузерное юнит тестирование вообще распространено? какие фреймворки лучше для этого подходят?
большое спасибо за этот урок, ты мне помог!
Как всегда, лучший.
видимо это будет глупый вопрос, т.к только открыл первое видео по тестам. в чем смысл изучать целый фреймворк, чтобы тестировать функцию sum(1,2), когда можно просто в console.log узнать правильно ли она складывает.
Спасибо!
Крут!)
Было бы круто еще Реакт компоненты.
Голосую за end to end тестирование и интеграционное тестирование)
Отлично заходит, продолжай!!
Спасибо за все курсы, супер
Забираю не глядя
Спасибо
Круто, жду ещё контент по тестирование интеграционному и ete
Отличное видео, спасибо за труд!
Спасибо за видео! Всё доступно и понятно. Вот только вопрос - как использовать jest на фронте, чтобы он не ругался на import. Нагуглить можно кучу разнообразных решение разной степени тяжести. Но, мне интересен, самый просто кейс - новое приложение, устанавливаю webpack, jest... что ещё нужно?
Спасиьо тебе !! Нужно больше тестов 😁
Здравствуйте, Владилен, хотел узнать у вас,а вы пользовались/пользуетесь каким-то другим языком программирования,кроме js?
Предположу, что нет. Как правило, те, кто выбирает Node.js (а у автора есть уроки по ноде, не только здесь) и выбирают его потому, что не хотят учить еще один язык.
@@phat80 вы оказались неправы. Владилен ещё умеет писать на php. Кстати на нем он научился писать раньше, чем на js
Rustam Tishkov я не думаю, что он как-то глубоко его постиг, а так понятно, что все, кто приходит в вэб первым делом трогают PHP. Я не исключение, знаю, что это такое и даже что-то напишу. Но знаю ли я его? Нет. Ничего серьезного я на нем не сотворю. Чтобы работать с языком, надо его знать и использовать регулярно. Если подходить с этой точки зрения, я лично знаю и Python, и C#, и C, и C++, и даже Huskell))) Но как адекватный человек, я понимаю, что заявлять об этом глупо. Особенно про Haskell, по которому я прочитал 2 книги, но многое так и не понял, а сейчас я вообще не вспомню даже синтаксис, хотя года 3 назад что-то простенькое писал на нем.
мне кажется, если кому-то не нравится произношение на английском, они могут пойти и посмотреть те же туторы на английском, а на русском и так все понятно. Нормальный у вас английский, все понятно
Есть люди, которым просто по приколу докопаться до мелочей. Причем в текущем случае это полный абсурд, так как никак не относится к видео.
не заигрывай. - null - нУл реально бесит, привыкаешь, потом западному заказчику нУлкаешь в скайпе, только потому что в голове крутится
🔥🔥🔥👍🏼 благодарю бро
Подскажите, есть расширение для VScode, которое так же как в видео подсказывает аргументы функции?
Мне кажется, что в описании к видео есть небольшая опечатка.
" и про реализацию популярный функций " - скорее всего, имелось ввиду "популярных функций"
Продолжай в том же духе!!
Отличное видео!
Это Жеееесть))
спасибо! Это было действительно полезно
Я правильно понял, что в первом примере где в функции возвращается объект с функций использовано замыкание?
Владилен, можно ли результаты тестирования вывести на монитор с помощью кастомной кнопки?
огоооооонь, спасибо тебе огромное, топ контент