Решение проблемы с удалением пользователя (e2e тест): в get usersItems() { } необходимо заменить return browser.react$$('User') на return $$('#users-list) - т.к. browser.react$$ работает только для react 16.v Далее: в async deleteUser() везде где встречается usersItems нужно поменять на usersItems[0].$$('div') т.е.: try { const usersCount = await this.usersItems[0].$$('div').length; if(!usersCount) { throw new Error('Пользователи не найдены') } await this.usersItems[0].$$('div')[0].$('#user-delete').click(); const usersCountAfterDelete = await this.usersItems[0].$$('div').length; if(usersCount - usersCountAfterDelete !== 1) { throw new Error('Удаление не произошло или удалился более чем 1 пользователь'); } } catch (e) { throw new Error('Не удалось удалить пользователя. ' + e.message) } и в файле users.e2e.js в тесте удаления пользователя необходимо убрать await UsersPage.loadData() - это при условии, что есть отдельный тест на loadData, либо же убрать отдельный тест на loadData и тогда в тесте удаления пользователя необходимо оставить await UsersPage.loadData()
Тестирование JavaScript от А до Я (Jest, React Testing Library, e2e, screenshot) Тестирование JavaScript от А до Я (Jest, React Testing Library, e2e, screenshot) react redux react router dom v6 jest webdriver e2e storybook tests js
Спасибо за видео, но не могу понять, я что единственный, кто столкнулся во втором кейсе e2e теста с ошибкой : javascript error: Could not find the root element of your application. В интернете нашёл 2 статьи с такой же проблемой , обе без решения. Как понял метод get usersItems() не возвращает желаемый массив с реакт компонентами. Есть у кого идеи как победить это?
Как то все надуманно (не контент видоса, а именно в концепции тестирования). Тесты пишутся тоже людьми и можно написать тест по функции спецом чтобы тесты были зеленые... очень похоже на дизельгейт в VW...
Если у кого-то возникла проблема "cannot use import statement outside a module" на axios, то вот решение. Long story: После выхода данного урока, библиотека axios перешла с CommonJS импорта на ES Modules, из-за этого и возникает ошибка. Ошибка именно в библиотеке. Чтобы это исправить, надо рассказать Jest'у что библиотека использует модули и это надо учесть при трансформации кода при запуске теста. Resume: Надо добавить в package.json код. Cам package.json будет выглядеть так: { ... "jest": { "transformIgnorePatterns": ["node_modules/(?!axios)"] } ... }
Этот вариант работает. Могу добавить, что по привычке при добавление axios воспользовался авто import, в итоге чесал репу и думал, что не так. А надо именно добавлять через require('axios'). Это же описано на npmjs.
Также долго мучался с этим. Искал разные решения из интернета и ничего не помогало. В итоге переделал на fetch. А сейчас попробовал ваше решение и axios заработал. Уряяя!
В этом ролике мы научимся тестировать JS приложения. Ознакомимся с JEST и научимся писать UNIT тесты. С помощью React testing library и jest научимся писать интеграционные тесты на react приложения в связке с react router dom и redux. Используя WebdriverIO научимся писать e2e тесты в реакт приложении. Также с помощью storybook и loki js научимся делать регрессионное тестирование UI части приложения .------ Для продвижения
У кого проблема "Cannot use import statement outside a module" при запуске теста на 58 минуте, то попробуйте в package.json добавить "jest": { "transformIgnorePatterns": ["node_modules/(?!axios)/"] }
Приветствую братан. Меня зовут Давид из Казахстана. У меня одно предложение есть. Чтобы ты дальше вкладывал свои уроки и зарабатывал. Напиши ответ если тебе интересует . А тебе лайк 👍
Тесты - тема, до которой так и не доходят руки. Думаю что вот именной сейчас настает время изучить эту тему с помощью видео замечательного от замечательного автора)
@@ne4to777 Никто не заставит, я бы сказал начнешь прОграммировать - потеряешься в бесконечных митингах через 10 лет, где и по прОграммировать тебе не дадут, это реальнее )
Вопрос. Как в одном файле запустить два разных теста в котором модуль, например, axios, либо запрос к БД (словом который импортируется через require) будет в одном из тестов мокнутым, а в другом тесте реализовывать свое реальное поведение. Уточнение. Такой модуль тестируется в составе другой функции (или модуля) которая внутри себя данный модуль вызывает и также импортируется в данный тест через require.
Благодаря Тимуру многому научился. Перед тем как сделать Cloud Disk самостоятельно и окончательно разобраться во всем, прошел другие необходимые курсы на этом замечательном канале. И вот финишная прямая - Деплой, и что товарищи я получаю от Heroku при регистрации - следующий ответ: We do not accept sign-ups from your country. Все знают с чем это связано на сегодняшнюю дату. Такова жизнь, блин...
58-17, выдавалась ошибка а импорт axios. Проблему решил с помощью установки jest в проект npm i -D jest, А также добавления в packege.json "devDependencies": { "jest": "^27.5.1" }, "jest": { "moduleNameMapper": { "axios": "axios/dist/node/axios.cjs" } } Заработало
Тест на удаление пользователя падает с ошибкой "Не удалось удалить пользователя. javascript error: Could not find the root element of your application"
Товарищи, если кто смотрит в 2023. Loki давно не обновлялся и сейчас не работает с последней 7 версией Storybook. Я перепробовал разныe инструменты для регрессивного тестирования UI (reg-viz suite, visviz, lost pixel). В итоге остановился на Chromatic - это родной инструмент от Storybook. Легко настраивается и отлично интегрируется с GitHub actions, и storycap даже не нужен. К тому же есть бесплатный план, если не пользуешься профессионально. Рекомендую всем.
В этом ролике мы научимся тестировать JS приложения. Ознакомимся с JEST и научимся писать UNIT тесты. С помощью React testing library и jest научимся писать интеграционные тесты на react приложения в связке с react router dom и redux. Используя WebdriverIO научимся писать e2e тесты в реакт приложении. Также с помощью storybook и loki js научимся делать регрессионное тестирование UI части приложения.
НУ, вот опять же в тему) я сейчас на новой работе как раз сижу за докой Cypress, впервые столкнулся с тестированием) спасибо бро, обязательно к просмотру!
Для тех кто столкнулся с ошибкой `Failed to render with error "unable to click element as it has or inherits pointer-events set to "none".` на этапе с loki, то вот решение. Long story: На момент записи урока этих проблем не было. Сейчас при инициализации storybook в пресете идет пример с play для кейса. На сколько понял это новый функционал и локи пока под него не адаптировали. По дефолту, локи добавляет разные стили и отключает анимации для того, чтобы вёрстка получалась максимально статичной, чтобы на скриншотах не было расхождений. Таким же образом он накидывает отключение событий курсора, на что начинает ругаться testing-library, потому что не может нажать на кнопку. Resume: В issues на официальном гитхабе локи нашел решение - функция написанная на typescript (github.com/oblador/loki/issues/359#issuecomment-1248135073). По уроку мы пишем на js, но решение проблемы на typescript, так что придется удалить описания типов, чтобы оно заработало. Также надеемся что рано или поздно у локи появится нативная поддержка play.
я одного не понял что getData() возвращает много значений const data = await getData() вот expect(data).toStrictEqual(['1','2','3']) а тут мы проверяем на 3 я понял что до запуска теста у нас 3 значения но все таки мы сравниваем с const data = await getData() а он вернет много значений , обясни пож , чего я не уловил.
Ульби, отличный канал, без преувеличения. Поставил колокольчик пару месяцев назад, как нашел твой канал. Все видео крайне полезны, без лишней воды, с хорошими практическими примерами. Еще не посмотрел тесты, но даже не сомневаюсь в полезности материала! Продолжай в том же духе! Всем знакомым рекомендую твой канал. Это наверно мой первый комментарий на TH-cam ;)
Тест "redirect to details page" в файле Users.test.jsx все время падает с ошибкой "Unable to find an element by: [data-testid="user-item"]" такое ощущение, что клик не отрабатывает userEvent.click(users[0]) вот полный код этого теста test('redirect to details page', async () => { axios.get.mockReturnValue(response) render(renderWithRouter()) const users = await screen.findAllByTestId('user-item') expect(users.length).toBe(3) userEvent.click(users[0]) expect(screen.getByTestId('user-page')).toBeInTheDocument() })
@@JUN-17 выше есть коммент по этому поводу. вот: Николай К 4 месяца назад (изменено) Класс! Как раз взяли на работу где требуется писать тесты, сижу изучаю. Из всех что нагуглил это топ видео на эту тему в ру сегменте. 57:00 интересно что если в рендере метод map сделать не через строку, то уже тест работать не будет. Пишет Unable to find an element by: [data-testid="user-item"] return (
{users.map(user => { {user.name} })}
) Чтобы всё это дело заработало, в методе map нужно явно указывать return: return (
Тимур, спасибо за ролик, он очень помог мне определиться с выбором библиотеки для тестирования. В рабочем проекте мы начали писать E2E-тесты на Cypress и я понял, тестирование большого приложения занимает очень много времени и разработчики при написании нового функционала просто не запускают тесты. После просмотра ролика я понял, что надо поговорить с заказчиком, оставить около 10% важных тестов на Cypress и покрыть всё приложение Unit-тестами на Jest. Покрывать большое приложение целиком тестами на Cypress это не вариант. Поправьте меня если я не прав, спасибо.
46:17 Почему тест этого элемента срабатывает не всегда? При больших значениях ms setTimeout функция не успевает дождаться и тест падает. Почему так? Она же асинхронная, должна и 5 сек ждать.
Промис с элементом резолвится по таймеру. Если к моменту возврата - элемент уже есть на странице, то тест зеленый. Если элемента нет - то сотвественно красный По дефолту таймер - 1000 мс (1 секунда) Можно добавить опции и задать свое значение таймаута, например 5 секунд: test('тестируем waitfor', async () => { const element = await screen.findByText(/hello world/i, {}, {timeout: 5000}) expect(element).toBeInTheDocument() })
Скажи, когда React Native? Или ты с этим не работаешь?
Решение проблемы с удалением пользователя (e2e тест):
в get usersItems() { } необходимо заменить return browser.react$$('User') на return $$('#users-list) - т.к. browser.react$$ работает только для react 16.v
Далее:
в async deleteUser()
везде где встречается usersItems нужно поменять на usersItems[0].$$('div') т.е.:
try {
const usersCount = await this.usersItems[0].$$('div').length;
if(!usersCount) {
throw new Error('Пользователи не найдены')
}
await this.usersItems[0].$$('div')[0].$('#user-delete').click();
const usersCountAfterDelete = await this.usersItems[0].$$('div').length;
if(usersCount - usersCountAfterDelete !== 1) {
throw new Error('Удаление не произошло или удалился более чем 1 пользователь');
}
} catch (e) {
throw new Error('Не удалось удалить пользователя. ' + e.message)
}
и в файле users.e2e.js в тесте удаления пользователя необходимо убрать await UsersPage.loadData() - это при условии, что есть отдельный тест на loadData, либо же убрать отдельный тест на loadData и тогда в тесте удаления пользователя необходимо оставить await UsersPage.loadData()
Благодарствую , 3 недели назад забил на эту проблему перерыв все что можно , а тут такое )
Ютуб могут отрубить, у тебя есть бекапы всех твоих видео? Они продолжат быть доступными на других площадках?
Обязательно! Подписывайся на телеграмм
Отличное видео по тестированию во Frontend на React! Актуально в 2024!
Тестирование JavaScript от А до Я (Jest, React Testing Library, e2e, screenshot) Тестирование JavaScript от А до Я (Jest, React Testing Library, e2e, screenshot) react redux react router dom v6 jest webdriver e2e storybook tests js
Если у кого-то ошибка при тестировании axios, добавьте в package.json:
"jest": {
"transformIgnorePatterns": [
"node_modules/(?!axios)"
]
},
В телеграмме же был спойлер о том , что видео должно было быть про собеседование ;(
тесты есть на собесе и в тестовых заданиях
Спасибо за видео, но не могу понять, я что единственный, кто столкнулся во втором кейсе e2e теста с ошибкой : javascript error: Could not find the root element of your application. В интернете нашёл 2 статьи с такой же проблемой , обе без решения. Как понял метод get usersItems() не возвращает желаемый массив с реакт компонентами. Есть у кого идеи как победить это?
Как то все надуманно (не контент видоса, а именно в концепции тестирования). Тесты пишутся тоже людьми и можно написать тест по функции спецом чтобы тесты были зеленые... очень похоже на дизельгейт в VW...
Если у кого-то возникла проблема "cannot use import statement outside a module" на axios, то вот решение.
Long story: После выхода данного урока, библиотека axios перешла с CommonJS импорта на ES Modules, из-за этого и возникает ошибка. Ошибка именно в библиотеке. Чтобы это исправить, надо рассказать Jest'у что библиотека использует модули и это надо учесть при трансформации кода при запуске теста.
Resume: Надо добавить в package.json код. Cам package.json будет выглядеть так:
{
...
"jest": {
"transformIgnorePatterns": ["node_modules/(?!axios)"]
}
...
}
Этот вариант работает. Могу добавить, что по привычке при добавление axios воспользовался авто import, в итоге чесал репу и думал, что не так. А надо именно добавлять через require('axios'). Это же описано на npmjs.
@@doudou1929 вобще-то разницы нет и с require тоже не робит, я протестил
Офигенное спасибо! В вебпаке по идее такое-же правило будет, как я понимаю? (Если без cra приложение ставить)
Также долго мучался с этим. Искал разные решения из интернета и ничего не помогало. В итоге переделал на fetch. А сейчас попробовал ваше решение и axios заработал. Уряяя!
Храни тебя Господь за это решение
Тестирование JavaScript от А до Я (Jest, React Testing Library, e2e, screenshot)
Вопрос, у всех ли работает userEvent.type, тайм код 54:20, с fireEvent все ок, value в инпуте поменялось, но когда userEvent - ничего не работает
В этом ролике мы научимся тестировать JS приложения. Ознакомимся с JEST и научимся писать UNIT тесты. С помощью React testing library и jest научимся писать интеграционные тесты на react приложения в связке с react router dom и redux. Используя WebdriverIO научимся писать e2e тесты в реакт приложении. Также с помощью storybook и loki js научимся делать регрессионное тестирование UI части приложения
.------
Для продвижения
У кого проблема "Cannot use import statement outside a module" при запуске теста на 58 минуте, то попробуйте в package.json добавить
"jest": {
"transformIgnorePatterns": ["node_modules/(?!axios)/"]
}
спасибо, интересно, ты применял все эти виды тестирования в продакшне?
Оставлю комментарий больше четырёх слов :)
Приветствую братан. Меня зовут Давид из Казахстана. У меня одно предложение есть. Чтобы ты дальше вкладывал свои уроки и зарабатывал. Напиши ответ если тебе интересует . А тебе лайк 👍
Чтоооо?)) От спасибо)
Великолепный работа
Тимур самый лучшый сэнсэй
огромный спасибо 👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍
Ставлю лайк не глядя, потому что точно как всегда все на высоте будет, даже не сомневаюсь) потом посмотрю, давно ждал ролик об этом от тебя)
может быть видео про транзакции с криптой, например как сделать платежку, которая будет отслеживать прошел платеж или нет
Js, JavaScript, test, тестирование. Тимур! Спасибо тебе огромное, ты лучший. Всех благ тебе!
Тесты - тема, до которой так и не доходят руки. Думаю что вот именной сейчас настает время изучить эту тему с помощью видео замечательного от замечательного автора)
Ничего, начнешь программировать, сразу тесты заставят писать)
@@ne4to777 ой не факт, часто встречаются репы без тестов, особенно фронтовые
@@ne4to777 Никто не заставит, я бы сказал начнешь прОграммировать - потеряешься в бесконечных митингах через 10 лет, где и по прОграммировать тебе не дадут, это реальнее )
я пришел к тестам так: нагрузка не равномерная на проекте и пока нет задач что бы от меня все отстали, я сказал я пишу тесты)
👍✌️
собаки нюхают деревья по четвергам вечером
Сам ты собака
А где Vue тестирование? :)
Почему с iPhone 7 а, не с iPhone 13 ?
Давай видос по webpack 5, и настройку под react
Думаю после такого ролика продажи курсов по тестированию упадут ))
давайте лайкнем и прокомментируем этот видос чтобы в мире стало больше чистого кода покрытого тестами
Если в БД меняется или удаляется хотя бы один из первых трех пользователей то моковые данные уже не актуальны и надо их заново вносить?
Очередной альманах, но в этот раз уже по тестированию, кто согласен что формат фундаментальных курсов от а до я топ ставьте лайк
Вчера на собесе про тесты спрашивали, Тимур как всегда вовремя)
Вопрос. Как в одном файле запустить два разных теста в котором модуль, например, axios, либо запрос к БД (словом который импортируется через require) будет в одном из тестов мокнутым, а в другом тесте реализовывать свое реальное поведение. Уточнение. Такой модуль тестируется в составе другой функции (или модуля) которая внутри себя данный модуль вызывает и также импортируется в данный тест через require.
Thank you!
Благодаря Тимуру многому научился. Перед тем как сделать Cloud Disk самостоятельно и окончательно разобраться во всем, прошел другие необходимые курсы на этом замечательном канале. И вот финишная прямая - Деплой, и что товарищи я получаю от Heroku при регистрации - следующий ответ: We do not accept sign-ups from your country.
Все знают с чем это связано на сегодняшнюю дату. Такова жизнь, блин...
Ждём курс по паттернам проектирования на чистом JS
Только что хотел написать об этом )
присоединяюсь
Тимур, привет!
Лайк, конечно же, поставил
И кстати, 1:26:24 читается "МОККА" )
Опять буду я ролик смотреть недели две. А потом опять задоначу!
То что нужно !!!! Как раз изучаем это!!! Спасибо, помог!
лайк подьехал-получите)
Ты и Михаил непомнящий лучшие
Согласен!!!!!
У меня одного корректно отрабатывает даже если не закомментировать верхние тесты 26:42?
И даже без jest.clearAllMocks()
То чего очень не хватало) Спасибо большое, буду изучать на днях!
Ой браток, как же вовремя видос за тесты, как раз собирался их изучать, а здесь 2 часа практики, делаешь годноту, респект тебе! :)
Осталось найти только время на всеээто. Только сегодня обсуждали регрессионное тестирование. Думал как раз покрыть тестами нашу систему.
Спасибо большое за материалы, сам недавно начал задумываться о тестах
Круть! Спасибо за годный контент!!! 🚀🚀🚀
Очень нужно разобраться в написании тестов. Автор молодец, автору спасибо)
58-17, выдавалась ошибка а импорт axios.
Проблему решил с помощью установки jest в проект npm i -D jest,
А также добавления в packege.json
"devDependencies": {
"jest": "^27.5.1"
},
"jest": {
"moduleNameMapper": {
"axios": "axios/dist/node/axios.cjs"
}
}
Заработало
Тест на удаление пользователя падает с ошибкой "Не удалось удалить пользователя. javascript error: Could not
find the root element of your application"
Товарищи, если кто смотрит в 2023. Loki давно не обновлялся и сейчас не работает с последней 7 версией Storybook. Я перепробовал разныe инструменты для регрессивного тестирования UI (reg-viz suite, visviz, lost pixel). В итоге остановился на Chromatic - это родной инструмент от Storybook. Легко настраивается и отлично интегрируется с GitHub actions, и storycap даже не нужен. К тому же есть бесплатный план, если не пользуешься профессионально. Рекомендую всем.
А что тут сказать? Все ОЧЕНЬ здорово!!! Впрочем как всегда. Огромнейшее СПАСИБО. Здоровья и благополучия!!!
🔥🔥🔥🔥
Да это просто огонь! Респект за системную инфу. Эй, Ютуб. Давай в топ советам всем кодерам!
В этом ролике мы научимся тестировать JS приложения. Ознакомимся с JEST и научимся писать UNIT тесты. С помощью React testing library и jest научимся писать интеграционные тесты на react приложения в связке с react router dom и redux. Используя WebdriverIO научимся писать e2e тесты в реакт приложении. Также с помощью storybook и loki js научимся делать регрессионное тестирование UI части приложения.
Спасибо MAN!!!!
КРУТО! Спасибо, давно ждал от тебя видео по тестам!
no comment👍👍
НУ, вот опять же в тему) я сейчас на новой работе как раз сижу за докой Cypress, впервые столкнулся с тестированием) спасибо бро, обязательно к просмотру!
какие люди)
@@DeIgado95 😘🙏
Лайк не глядя! Спасибо. Уверен, это будет самая полезная выжимка по юнит-тестированию, е2е тестам, jest и react testing library
Не знаком с автором, но… огромное спасибо. Просто молодец и все.
You are the best .
Спасибо большое! Ты красавчик!
Спасибоооо за такой полный курс!!! Сейчас же буду смотреть! Уверена будет много полезного🥰
Коммент для продвижения на ютюбе
Для тех кто столкнулся с ошибкой `Failed to render with error "unable to click element as it has or inherits pointer-events set to "none".` на этапе с loki, то вот решение.
Long story: На момент записи урока этих проблем не было. Сейчас при инициализации storybook в пресете идет пример с play для кейса. На сколько понял это новый функционал и локи пока под него не адаптировали. По дефолту, локи добавляет разные стили и отключает анимации для того, чтобы вёрстка получалась максимально статичной, чтобы на скриншотах не было расхождений. Таким же образом он накидывает отключение событий курсора, на что начинает ругаться testing-library, потому что не может нажать на кнопку.
Resume: В issues на официальном гитхабе локи нашел решение - функция написанная на typescript (github.com/oblador/loki/issues/359#issuecomment-1248135073). По уроку мы пишем на js, но решение проблемы на typescript, так что придется удалить описания типов, чтобы оно заработало. Также надеемся что рано или поздно у локи появится нативная поддержка play.
Конкретно сегодня решил закрыть все пробелы по этой теме. И тут на. Ну спасибо, бро 👍
я одного не понял что getData() возвращает много значений
const data = await getData() вот
expect(data).toStrictEqual(['1','2','3']) а тут мы проверяем на 3
я понял что до запуска теста у нас 3 значения но все таки мы сравниваем с const data = await getData() а он вернет много значений ,
обясни пож , чего я не уловил.
вот это неожиданно! надо будет крайне внимательно смотреть!👀 спасибо огромное
Сначала лайк и комментарии!
Огромное спасибо! Только собирался тестировать проект, и тут бац, вся нужная инфа в одном в видео)
лучший лучший лучший лучший лучший лучший лучший
Боже, храните Ulbi за такой классный контент!!!
Очень полезный контент! Спасибо автору за систематизированную подачу контента и за полноценный обзор современных решений для тестирования!
Благодаря вашим видео у меня уже 'КОТ Барсик' во всю на javascript пишет код! На столько все разжевано!
Ульби, отличный канал, без преувеличения. Поставил колокольчик пару месяцев назад, как нашел твой канал. Все видео крайне полезны, без лишней воды, с хорошими практическими примерами. Еще не посмотрел тесты, но даже не сомневаюсь в полезности материала! Продолжай в том же духе! Всем знакомым рекомендую твой канал.
Это наверно мой первый комментарий на TH-cam ;)
Новые вкусняхи от Тимура
ты четкий, рад что нашел твой ютуб канал.
Тесты - написал и спи спокойно.
Спасибо, полезно. Лайк поставил
Отлично, как раз нужен был курс по тестам, вечером посмотрю обязательно)
спасибо за твой контент!
Очень вовремя, спасибо)
Тест "redirect to details page" в файле Users.test.jsx все время падает с ошибкой "Unable to find an element by: [data-testid="user-item"]"
такое ощущение, что клик не отрабатывает userEvent.click(users[0])
вот полный код этого теста
test('redirect to details page', async () => {
axios.get.mockReturnValue(response)
render(renderWithRouter())
const users = await screen.findAllByTestId('user-item')
expect(users.length).toBe(3)
userEvent.click(users[0])
expect(screen.getByTestId('user-page')).toBeInTheDocument()
})
Решил как нибудь?
@@АнтонШашков-п4й А ты?;)
Решили ?)
@@JUN-17 выше есть коммент по этому поводу. вот: Николай К
4 месяца назад (изменено)
Класс! Как раз взяли на работу где требуется писать тесты, сижу изучаю. Из всех что нагуглил это топ видео на эту тему в ру сегменте.
57:00
интересно что если в рендере метод map сделать не через строку, то уже тест работать не будет. Пишет Unable to find an element by: [data-testid="user-item"]
return (
{users.map(user => {
{user.name}
})}
)
Чтобы всё это дело заработало, в методе map нужно явно указывать return:
return (
{users.map(user => {
return({user.name})
})}
)
@@ismailbenoevski Проблема не в этом
Лайк поставил, ночью посмотрю
Как во время! Большое спасибо! Написал комент, потом пошел смотреть)))
Тимур, спасибо за ролик, он очень помог мне определиться с выбором библиотеки для тестирования. В рабочем проекте мы начали писать E2E-тесты на Cypress и я понял, тестирование большого приложения занимает очень много времени и разработчики при написании нового функционала просто не запускают тесты. После просмотра ролика я понял, что надо поговорить с заказчиком, оставить около 10% важных тестов на Cypress и покрыть всё приложение Unit-тестами на Jest. Покрывать большое приложение целиком тестами на Cypress это не вариант. Поправьте меня если я не прав, спасибо.
46:17 Почему тест этого элемента срабатывает не всегда? При больших значениях ms setTimeout функция не успевает дождаться и тест падает. Почему так? Она же асинхронная, должна и 5 сек ждать.
Промис с элементом резолвится по таймеру. Если к моменту возврата - элемент уже есть на странице, то тест зеленый. Если элемента нет - то сотвественно красный
По дефолту таймер - 1000 мс (1 секунда)
Можно добавить опции и задать свое значение таймаута, например 5 секунд:
test('тестируем waitfor', async () => {
const element = await screen.findByText(/hello world/i, {}, {timeout: 5000})
expect(element).toBeInTheDocument()
})
афигеннннннный ты!
Наконец, как же я долго ждал этого курса от тебя, поможем Тимуру поднять видос в топ!!!
Лучший, спасибо
Какой же топовый крутой
Супер, спасибо!👍
Спасибо! Лучший как всегда
Спасибо, потом позже буду смотреть
Пишу респект коммент)))
Мужик, как же ты вовремя, на работе как раз решили покрывать тестами проект и тут твое видео
так иди на завод, стой да гайти чисти, и все окей) чем на заводе то плохо?
@@Good_nick_name иди сам толчки драй, я программист, я буду говнокодить, меня все устраивает
Недавно искал ролик на канале по тестированию. И вот он.
Спасибо!