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т странно что я такого делаю, но этот вопрос в той или иной форме последнее время зачастил... Но ваша форма получилась самой символичной, технорелигия и все такое... На самом деле просто долго живу, не останавливаясь в познании
Лучший урок по 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".
Владилен, у меня есть 1 вопрос к твоему курсу. возможно ли с тобой связаться по средствам мессенджеров и задать 2 вопроса, и украсть буквально 2 минуты твоего времени
Скажи пожалуйста что за расширение у тебя в редакторе (которое при вызове функции пишет переменные (a: 41, b: 1"), или обозначает функцию(fn: ()=>{})....??? Есть ли такое для редактора "VS code"??? Может кто знает...? Спасибо за годный контент :) Лучший*
Зашёл под одной учеткой - поставил лайк, колокольчик... Вышел, зашёл под второй учеткой - поставил лайк и колокол соответственно. Вышел, зашёл под третьей учеткой - посмотрел видео и проделал все остальное) Спасибо за ваш труд!
спасибо всем кто делает видеоуроки, вы делаете мир проще =) не знаю тут оптимизирует ли по словам)) javascript, nodejs, unit test, юнит тестирование, видео урок
Это лучшее, что можно найти на просторах русскоязычного интернета. Очень хочется больше новых видео! Приятно смотреть, слушать и учиться! Спасибо большое, Владилен!
Поставил лайк, пишу комментарий, подписываться ещё не спешу, но возможно в будущем, а колокольчик не нашёл. За видео спасибо. Очень познавательно и интересно.
Спасибо! Очень круто объяснил. 42:37 не обязательно глобально ставить Jest, можно просто вызвать его через ./node_modules/.bin/jest, так как он уже установлен локально
Я как всегда, после твоих видео обалдел, как все несложно, ты как всегда на высоте. И число 42 на месте)) Все как обычно, по фэншую Спасибо, Владилен, огромное
Спасибо за видео! Всё по полочкам и без лишнего мусора. До этого кучу материала прочитал, а в голове только увеличивалась каша. Теперь вроде появился небольшой порядок. И отдельно понравились реализации встроенных функций, реально помогает лучше понимать устройство js.
Флаг и есть минус родной)) Часто в твоих роликах слышу: флаг минус д))) флаг д) Спасибо, так помогаешь в развитии со своими роликами, продолжай в том же духе
Так структурировано, развернуто, доходчиво и главное интересно никто на просторах ютуба не делает, просто душевное спасибо. Отдельно радуют комментарии под роликом, ни одного не увидел с непонятным куском кода и вопросом почему не работает, за это и аудитории спасибо)
Спасибо за ролик. Теперь для многих Unit Тестирование при помощи Jest в Javascript выглядит не таким страшным. С нетерпением ждем ролики по интеграционному и e2e-тестированию.
Спасибо за актуальный для меня контент! Я подсел на ваши курсы почти с самого начала канала) Вы сильно выделяетесь среди современных блогеров-преподавателей. Больших вам успехов как коммерческих так и профессиональных!
Очень бы хотелось увидеть остальные виды тестирования, я как тестировщик очень заинтересован!!! Буду ждать видео! Лучший контент по JS , приятно смотреть твой контент.
@@dreamer_vi905 почему спрашиваю, пришло время учить тестирование, а видео вышло 3 года назад, вот и думаю, стоит ли смотреть, или по доке учить. Спасибо за ответ)
Спасибо за урок. Ждем другие темы по тестированию. В крупных проектах много времени уделяется тестированию. Ждем другие видео и ожидаем там слова, "теперь пишем тесты, кто еще не в курсе смотрите мои уроки на канале".
Очень отличная тема ) Спасибо ) Было бы замечательно если бы ты рассмотрел тестирование в связке Jest с react testing library. И е2е на примере Cypress. Буду чрезмерно благодарен )
Команда - нпм инстОл. Тулза для тестирования моЧа, правильно звучит - мока. мЭтчеры, от слова мАтч) Иногда как произнесешь, немного испанский стыд вызывает)) А вообще, спасибо за труды, недавно натолкнулся на канал, в предверии смены проекта - пригодились некоторые темы для закрепления знаний или даже узнать что-то новое узнать.
Демон, как ты это делаешь ? Я только подумал о тестировании... И так уже не первый раз с твоими видосами ! ;) Спасибо большое ) пойду самовар ставить и в бой =D
Владилен, начал изучать тестирование. Замечательный урок. Но есть вопрос. Использую MobX как менеджер состоянии для React приложений. Написал обёртку для axios под типизацию запросов компании в которой есть трансформатор данных из серверных в реактивные. Иногда случается, что у меня такой запрос ломается и чтобы найти проблему дважды тратил не один час. Под такой кейс Ваш последний пример также подходит ? Буду очень благодарен ответу !
Скажи пожалуйста что за расширение у тебя в редакторе (которое при вызове функции пишет переменные (a: 41, b: 1"), или обозначает функцию(fn: ()=>{})....??? Есть ли такое для редактора "VS code"??? Может кто знает...? Спасибо за годный контент :) Лучший*
видимо это будет глупый вопрос, т.к только открыл первое видео по тестам. в чем смысл изучать целый фреймворк, чтобы тестировать функцию sum(1,2), когда можно просто в console.log узнать правильно ли она складывает.
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 тестирование и интеграция важнейшие темы, но в интернете представлены минимально.
++++++
++++++++
+
+++
++++
Однозначно нужно про е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".
Приятного и продуктивного тестирования)
Привет. Подскажи на сколько сейчас актуальна программа курса по реакту на удеми?
@@vitaliy794 нормас. я вчера купил. актуально. версии практически 16/12и там и там вродь
Владилен, у меня есть 1 вопрос к твоему курсу. возможно ли с тобой связаться по средствам мессенджеров и задать 2 вопроса, и украсть буквально 2 минуты твоего времени
Скажи пожалуйста что за расширение у тебя в редакторе (которое при вызове функции пишет переменные (a: 41, b: 1"), или обозначает функцию(fn: ()=>{})....??? Есть ли такое для редактора "VS code"??? Может кто знает...? Спасибо за годный контент :) Лучший*
Очень хотелось бы увидеть видео про связку бэка и фронта, (бэк связанный с graphql, apollo-express-server, фронт с apollo client, будет ли такое?)
лайк тебе братан, недавно только задумался что нужно уметь в тесты, и тут подгон такой. Спс
Зашёл под одной учеткой - поставил лайк, колокольчик... Вышел, зашёл под второй учеткой - поставил лайк и колокол соответственно. Вышел, зашёл под третьей учеткой - посмотрел видео и проделал все остальное) Спасибо за ваш труд!
Отличные урок про Jest unit тестирование. Советую всем новичкам. Те кто 0 в тестирование js будет очен познавательно.
Спасибо Владилен.
спасибо всем кто делает видеоуроки, вы делаете мир проще =)
не знаю тут оптимизирует ли по словам))
javascript, nodejs, unit test, юнит тестирование, видео урок
Воу-воу! Наконец-то про тестирование видос. Давно ждал. У Владилена как всегда контент самый топ!
Беспрецедентный добродетель, спасибо большое за труд. Как всегда все оч. годно.
Читаете мысли, Владилен! Спасибо! С жадностью смотрю все Ваши видео и с нетерпением ожидаю новых.
Это лучшее, что можно найти на просторах русскоязычного интернета. Очень хочется больше новых видео! Приятно смотреть, слушать и учиться! Спасибо большое, Владилен!
Поставил лайк, пишу комментарий, подписываться ещё не спешу, но возможно в будущем, а колокольчик не нашёл.
За видео спасибо. Очень познавательно и интересно.
Спасибо! Очень круто объяснил.
42:37 не обязательно глобально ставить Jest, можно просто вызвать его через ./node_modules/.bin/jest, так как он уже установлен локально
или запустить командой npx jest 02_sync/sync.spec.js (npx как раз будет искать jest в локальной node_modules)
Оооо даааа, наконец-то дождался jest от тебя) Спасибо, ты лучший)
Тестирование реакт компонентов интересно.
Ещё не досмотрел до конца, но уже хочу про интеграционное тестирование!
Спасибо за годный контент!!
Владилен, ты просто не представляешь, насколько вовремя для меня ты выпускаешь это видео! Спасибо.
Я как всегда, после твоих видео обалдел, как все несложно, ты как всегда на высоте. И число 42 на месте))
Все как обычно, по фэншую
Спасибо, Владилен, огромное
Отличное видео! Помогло побороть себя и начать работать с тестами)
Спасибо за видео! Всё по полочкам и без лишнего мусора. До этого кучу материала прочитал, а в голове только увеличивалась каша. Теперь вроде появился небольшой порядок.
И отдельно понравились реализации встроенных функций, реально помогает лучше понимать устройство js.
Да давно хотел в тестирование вкатиться и именно jest использовать, спасибо за подгон
Круто что ты есть, Владилен!💘
Отличное видео о Unit тестировании с помощью Jest. Спасибо большое!)
Большое спасибо за ролик. Хороший вариант поковырять jest и разобраться в его базовых принципах.
+ за интеграционное и e2e тестирование! Очень ждем))
Класс! Крутой видос как и всегда! Жду материалы по остальному тестированию с нетерпением
Флаг и есть минус родной)) Часто в твоих роликах слышу: флаг минус д))) флаг д)
Спасибо, так помогаешь в развитии со своими роликами, продолжай в том же духе
Опять годнота подъехала,когда ты все успеваешь?)Спасибо огромное!)
Лайк за ролик, Владилен, давай ролик по каждом виду тестирования)
Не так сложно, как боялся. Спасибо за урок! Будем тренироваться)
Так структурировано, развернуто, доходчиво и главное интересно никто на просторах ютуба не делает, просто душевное спасибо.
Отдельно радуют комментарии под роликом, ни одного не увидел с непонятным куском кода и вопросом почему не работает, за это и аудитории спасибо)
Спасибо за ролик. Теперь для многих Unit Тестирование при помощи Jest в Javascript выглядит не таким страшным.
С нетерпением ждем ролики по интеграционному и e2e-тестированию.
Чувак ты самый лучший. Благодарю за новый ролик. Прям вовремя )
спасибо! очень хочется продолжения:)
Спасибо за работу и такой полезный контент.
Спасибо за актуальный для меня контент! Я подсел на ваши курсы почти с самого начала канала) Вы сильно выделяетесь среди современных блогеров-преподавателей. Больших вам успехов как коммерческих так и профессиональных!
Очень бы хотелось увидеть остальные виды тестирования, я как тестировщик очень заинтересован!!!
Буду ждать видео! Лучший контент по JS , приятно смотреть твой контент.
Как всегда на высшем уровне. Спасибо большое, Владлен!
актуально ли видео на сегодняшний день?
@@Богдан-й3ч Почему нет. Вполне.
@@dreamer_vi905 почему спрашиваю, пришло время учить тестирование, а видео вышло 3 года назад, вот и думаю, стоит ли смотреть, или по доке учить. Спасибо за ответ)
Спасибо за урок. Ждем другие темы по тестированию. В крупных проектах много времени уделяется тестированию. Ждем другие видео и ожидаем там слова, "теперь пишем тесты, кто еще не в курсе смотрите мои уроки на канале".
Классная подача материала, не останавливайся, твой труд очень полезен 👍
Обалдеть) Я об этом попросил в прошлом видео и вуаля!))) Спасибо огромное, Владилен
Однозначно продолжать тему с тестированием, особенно в связке с vue
Спасибо за очередное путешествие в мир js :)
Кто посмел дизлайкнуть такую годноту!?! Супер контент.
Отличное видео. Владилен , спасибо тебе за время и усилия вложенные в создание обучающего материала!
Отличное видео! хотелось бы продолжения...
Очень отличная тема ) Спасибо ) Было бы замечательно если бы ты рассмотрел тестирование в связке Jest с react testing library. И е2е на примере Cypress. Буду чрезмерно благодарен )
Спасибо за видео! Как всегда все великолепно!:) Было бы реально круто если еще про тестирование UI с enzyme)
Спасибо Владилен!)
Отлично рассказал, спасибо большое, ждём ещё видео про тестирование 👍
09:44 - intro
37:45 - sync
1:02:00 - async
1:09:32 - моки
1:19:50 - async (axios)
ты большой молодец, спасибо тебе за твои видео
Ставлю лайк и начинаю смотреть!)
Спасибо за контент и однозначно голосую за продолжение!
Jest. Unit Тестирование в JavaScript круто что во многом разбираетесь!
Очень ценная информация! Спасибо тебе огромное за труд :) Было бы хорошо, если бы рассмотрел тему тестирования api на бэке желательно на typescript
Спасибо тебе большое! Тесты наше все
Спасибо! Про тесты теперь многие говорят.
В вебшторме можно "вызвать метод" .log у любой конструкции за место того, чтобы писать console.log каждый раз
Подскажите, как врубить types/jest на 20:39 на VS Code
Просто топ! Шикарная подача материала!
Спасибо!
Крут!)
Было бы круто еще Реакт компоненты.
Круто, жду ещё контент по тестирование интеграционному и ete
Спасибо, все по полочкам разложил
Увидел тему нового видео -- Лайк авансом))
Спасиьо тебе !! Нужно больше тестов 😁
Вижу видос Владилена сразу лайк!))
Огромное тебе спасибо! О-о-о-о-чень доходчиво объяснил
Оооо годнота то какая)) Может курс по NextJS? Запульте лайками кто тоже за NextJS (:
большое спасибо за этот урок, ты мне помог!
Команда - нпм инстОл. Тулза для тестирования моЧа, правильно звучит - мока. мЭтчеры, от слова мАтч) Иногда как произнесешь, немного испанский стыд вызывает)) А вообще, спасибо за труды, недавно натолкнулся на канал, в предверии смены проекта - пригодились некоторые темы для закрепления знаний или даже узнать что-то новое узнать.
ппц, я изучал на английском а ты как всегда это уже запилил
Хорошее видео))) очень достойно обьяснил и просто.Спасибо!!
Отличное видео, спасибо за труд!
Спасибо за материал. Очень хотелось бы увидеть интеграционное и е2е тестирование.
Спасибо за все курсы, супер
спасибо! Это было действительно полезно
Голосую за end to end тестирование и интеграционное тестирование)
Спасибо Владилен! Отличный контент!
годнота. Предлагаю снять angular 9 практику по типу как ты делал приложение органайзер. Было бы очень полезно
Отлично заходит, продолжай!!
круто, можно туториал по Cypress запилить еще )
Заснул. Прямо за компом. Его голос заставляет спать.
compact можно упростить немного
compact = arr => arr.filter(val => val), т.е без !!val
Огромное спасибо! Про про е2е и интеграционные было бы интересно посмотреть. На примере Vue.
Подскажите как сделать подсказку параметров функции в visual code так же как у webstorm ?
Демон, как ты это делаешь ? Я только подумал о тестировании... И так уже не первый раз с твоими видосами ! ;) Спасибо большое ) пойду самовар ставить и в бой =D
а браузерное юнит тестирование вообще распространено? какие фреймворки лучше для этого подходят?
Забираю не глядя
Спасибо
Владилен, начал изучать тестирование. Замечательный урок. Но есть вопрос. Использую MobX как менеджер состоянии для React приложений. Написал обёртку для axios под типизацию запросов компании в которой есть трансформатор данных из серверных в реактивные. Иногда случается, что у меня такой запрос ломается и чтобы найти проблему дважды тратил не один час.
Под такой кейс Ваш последний пример также подходит ?
Буду очень благодарен ответу !
Продолжай в том же духе!!
Топ, как раз то что нужно! Как раз про это думал.
Ты правильно предположил, дрИвен)
Скажи пожалуйста что за расширение у тебя в редакторе (которое при вызове функции пишет переменные (a: 41, b: 1"), или обозначает функцию(fn: ()=>{})....??? Есть ли такое для редактора "VS code"??? Может кто знает...? Спасибо за годный контент :) Лучший*
Да есть. Я писал про него в телеграм канале
видимо это будет глупый вопрос, т.к только открыл первое видео по тестам. в чем смысл изучать целый фреймворк, чтобы тестировать функцию sum(1,2), когда можно просто в console.log узнать правильно ли она складывает.
Спасибо за урок!
Отличное видео!
возникли трудности с настройкой работы jest для VScode, интерфейс отличается от webstorm :C. Просто установил нужный Extension VScode store