Тёмный

React Testing Tutorial (Jest + React Testing Library) 

Kris Foster
Подписаться 10 тыс.
Просмотров 239 тыс.
50% 1

Learn how to write unit tests for your React components using Jest and the React Testing Library.
We will be writing some unit tests for React components using the Jest framework (jestjs.io/). We will begin by creating a react app using create-react-app. Then we will create a component & write some unit tests for it. We will finish by writing some snapshot tests to verify changes to the component tree.
Don't forget to Subscribe here: / @krisfoster1

Наука

Опубликовано:

 

26 фев 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 130   
@marciocamollez7062
@marciocamollez7062 Год назад
Simply the best explanation from entire RU-vid. I'm studying react from 2 years and test library was the worst part to find some good videos. Congrats!
@skyhawksp
@skyhawksp 3 года назад
The most useful react jest testing tutorial video currently on RU-vid. Thank you!
@andersonsimeon4172
@andersonsimeon4172 2 месяца назад
For a 3 years ago video, this is high quality staright to the point content. Thanks Man
@peacekper
@peacekper 7 месяцев назад
Thank you so much for this tutorial! I would agree with the other comments too about seeing a more involved testing suite using a state library. But this was by far the best video I've seen on using jest. Keep the videos coming
@JuaNeMe
@JuaNeMe 3 года назад
Excellent video! I have been waiting a video like this with React Testing in an useful way for a long time.
@KrisFoster1
@KrisFoster1 3 года назад
That's great, thank you for the feedback @juan ocho!
@SoftwareSimplified-Dtons
@SoftwareSimplified-Dtons 9 месяцев назад
Thank you Kris for the wonderful learning videos . Just a small suggestion. The test was failing with '' so at 16:44 please change from expect(todoElement).toContainHTML(''); to expect(todoElement).toContainHTML('strike');
@christonit6895
@christonit6895 2 года назад
Uff thanks man! I have been all day reading the jest and react docs and wasn't understanding how to use these techs XD you just teched me how to properly unit test my UI lib.
@KrisFoster1
@KrisFoster1 2 года назад
Glad you enjoyed the video!
@Whiskey0
@Whiskey0 Год назад
Great tutorial mate, would love to see a more complicated test suite on a component that is using redux!
@carlosg8716
@carlosg8716 2 года назад
Excellent video. I went from zero to added to my projects in 22 minutes and 15 seconds
@seriouslee4119
@seriouslee4119 Год назад
Bru, your voice is so soothing. I'm rewatching this video tonight instead of ASMR lol.
@rupeshmody8901
@rupeshmody8901 Год назад
Very simple and so far the best. Thank you.
@jackstorm777
@jackstorm777 Год назад
Excellent tutorial, lots of good info in 20 minutes!
@chenyangwang1930
@chenyangwang1930 Год назад
Perfect tutorial! Really easy to understand
@mahmoudhamdy819
@mahmoudhamdy819 6 месяцев назад
thank you so much for great and brief react test explanation
@joseff5998
@joseff5998 Год назад
Thanks for clear and simple explanation.
@gnumanoj
@gnumanoj 2 года назад
most useful video so far ! :) Thank you!
@martinharyanto4465
@martinharyanto4465 Год назад
Hi Kris ! thanks for explanation, I know this video is 2 years old, is it possible for you to re-explain it with current state of Jest + React Testing Library? Probably some improvement here and there? And maybe you could help to explain about testing user event + mocking child component inside the component being tested. Thanks ! This is a very simple and great tutorial 👍
@MietekPomywacz
@MietekPomywacz Год назад
Very good video, explained in a simple way :)
@gina7898
@gina7898 Год назад
This was so helpful. Thank you!
@jaceborg
@jaceborg 3 года назад
Great video, really well explained, thanks :)
@sureshanands
@sureshanands 3 года назад
Bro can yu make videos for async methods RTL testing. Some other examples which helps real time project experience. This video is also good . If you make those tht would be best ❤️👍
@khandoor7228
@khandoor7228 3 года назад
please do more with testing!
@EminoMeneko
@EminoMeneko 2 года назад
Nice quick start.
@MrAndykofi
@MrAndykofi 2 года назад
Excellent, thanks a lot, was good to watch.
@aaronmatto1375
@aaronmatto1375 2 года назад
Amazing video. Thank you!
@nusskugeldingsi
@nusskugeldingsi 2 года назад
Nice overview of testing with Jest in React! BTW the Todo component inside the map loop is missing a key prop. ;)
@I3uzzzzzz
@I3uzzzzzz Год назад
ur life is missing a dad ;)
@lyndontan1561
@lyndontan1561 3 года назад
Perfect time and a perfect example thank you!!!! from PH please do more sample like using hooks State T.I.A
@KrisFoster1
@KrisFoster1 3 года назад
Thank you for the feedback!
@charithamila9194
@charithamila9194 2 года назад
Thanks a lot. Very helpful
@spytyler
@spytyler 3 года назад
Great video. Very helpful
@alainhonorekubwayo8819
@alainhonorekubwayo8819 Год назад
Excellent tutorial!
@arunimaroy4383
@arunimaroy4383 11 месяцев назад
toContainHtml method expects to pass html tag as a string without tag notaion so you need to replace '' with 'strike'.
2 месяца назад
awesome content , thank you very much your time.
@josephcobbinah5412
@josephcobbinah5412 Год назад
Great stuff man!!
@adityanair1001
@adityanair1001 2 года назад
Thanks bruh ❤️ Can u make more of these vedios How how to test for the data in a component which we r getting from api.
@todaysrapsux123
@todaysrapsux123 3 года назад
thank you! subscribed!
@harelweingarten5579
@harelweingarten5579 11 месяцев назад
Great tutorial , TNX.
@smhmkkh
@smhmkkh 2 года назад
Thank you, that was great. The only part i didn’t understand was what is snapshot
@damo190
@damo190 3 года назад
Thanks for this video bro. Will u start a video series on Reactjs testing just like using, mocha, chai, cypress, knightwatchJs, jasmine, karma, react testing library, etc?
@KrisFoster1
@KrisFoster1 3 года назад
I made some videos a while back on some of those technologies: cypress - m.ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-woI490HRM34.html mocha/chai - m.ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-FKOstRrwT5w.html
@oliver1231033
@oliver1231033 3 года назад
awesome content, thank you!
@KrisFoster1
@KrisFoster1 3 года назад
Glad you enjoyed!
@sukhsingh7057
@sukhsingh7057 Год назад
Great guide!
@mauroinde
@mauroinde Год назад
new subscriber, clear class
@dinidulochana3295
@dinidulochana3295 2 года назад
Great content!! Thank you.
@KrisFoster1
@KrisFoster1 2 года назад
Thank you!
@cristoslaher
@cristoslaher 2 года назад
Great! Really helpful
@user-gc5wf1rg6h
@user-gc5wf1rg6h 8 месяцев назад
Thank you so much!
@554-manjushriparkhe4
@554-manjushriparkhe4 2 года назад
Thank you so much for this vedio great vedio
@marvinotieno2194
@marvinotieno2194 3 месяца назад
This video is really good
@marcelhumes1360
@marcelhumes1360 Год назад
Thank you Kris.
@user-cs4nu4ch3l
@user-cs4nu4ch3l 8 месяцев назад
Nice hi Kris, From Ireland too
@bautista-cutraro
@bautista-cutraro 3 года назад
Great video!
@BarbarosYurttagul
@BarbarosYurttagul Месяц назад
Hi Kris, thanks for the video. 21:26 How did you manage to reduce the test execution speed from 2+ seconds to 0.666 seconds? I did the same steps but mine didn't change.
@Saje3l
@Saje3l Год назад
Totally Awesome!!!
@HeshamElQuerm
@HeshamElQuerm 2 года назад
Good video, but why did you `mock` the props in the test file? Isn't there a more elegant way to get the real props that are passed to the component?
@cloudsss83
@cloudsss83 11 месяцев назад
you should create more tuts... you`re good. thanks
@ManishKumar-mi7ko
@ManishKumar-mi7ko 3 года назад
thank you so much
@vadirajkanakagiri5028
@vadirajkanakagiri5028 Год назад
I'm getting the error as SyntaxError: Cannot use import statement outside a module, can you please help me with this
@poenaeco
@poenaeco 3 года назад
What is the extension you are using in the console? Thanks for the tutorial btw.
@poenaeco
@poenaeco 3 года назад
I mean for the GIT.
@KrisFoster1
@KrisFoster1 3 года назад
Hi @poenaeco, it's called ohmyzsh. I find it very useful. Here's a link with steps to install ohmyz.sh/
@poenaeco
@poenaeco 3 года назад
@@KrisFoster1 Thanks for the reply.
@ZawWLwin-jo7dc
@ZawWLwin-jo7dc 2 года назад
The usual flow for TDD is to write the test first, watch it fail, and make a minimal effort to get it right and then refactor. But anyway, greate video.
@KrisFoster1
@KrisFoster1 2 года назад
Thank you for the feedback @Zaw W. Lwin, TDD is just one approach to take. This tutorial is not on TDD but just on how to test react components.
@137dylan
@137dylan 2 года назад
@@KrisFoster1 Even Kent Dodds said he rarely goes full TDD and prefers to use a more iterative approach
@jackstorm777
@jackstorm777 Год назад
TDD is an unattainable ideal, like world peace or eternal youth, it's nice to think about but will never EVER happen :)
@timdanielewski8036
@timdanielewski8036 Год назад
​@@jackstorm777oh it's real! Maybe they call it extreme programming because it's extremely rare. I stumbled into a team of 8 developers that pair program and swap partners everyday. Not one line of code was written with out a test existing first. One of the funnest things I've ever been a part of.
@IncolasCopperfield
@IncolasCopperfield 2 года назад
thank you
@oleksandrhusiev6544
@oleksandrhusiev6544 2 года назад
Top, thanks!
@KrisFoster1
@KrisFoster1 2 года назад
Glad you enjoyed!
@lekkyjayz6294
@lekkyjayz6294 3 года назад
Can you make a tutorial about react redux unit testing?
@akunduru4
@akunduru4 3 года назад
Thanks for the video. How do we get that back quote in the VSC in the data-testid={'todo-${id}'} ?
@MohamedElamir3
@MohamedElamir3 3 года назад
the button under the Esc button
@nicolasgomez5207
@nicolasgomez5207 Год назад
``
@bhaskardas3777
@bhaskardas3777 Год назад
U are awesome.
@aanandantma9573
@aanandantma9573 2 года назад
Are you using any extension for jest intellisense?
@himallimbu007
@himallimbu007 2 года назад
toContainHTML function is not working properly, can you please help?
@grumly85
@grumly85 Год назад
I've got pink panther in my head now with all these 'todo, todo, todo,...' Nice tutorial still
@KrisFoster1
@KrisFoster1 Год назад
Thank you!
@Leo-bl3ge
@Leo-bl3ge 2 года назад
Why does my simple tests take so long? A simple expect(true).toBe(true) takes(2ms) but Time was 3s (yours was 1s) Edit: I was able to make it 1.9s with --maxWorkers=50%, but idk if there's more to do
@awefawefwaef
@awefawefwaef Год назад
what window manager are you using?
@saraswathijampala510
@saraswathijampala510 Год назад
HI.............the node version u used is 14 r 16........? Please share me i tried in both version 14 and 16 but its not working.
@jeanlaguna6949
@jeanlaguna6949 Год назад
nice tutorial. Just one thing.... toContainHTML receive just the name of the tag without the ""
@TlbHibiki
@TlbHibiki Год назад
I was just going through this tutorial and I had this issue with toContainHTML not liking and should be changed to remove the .
@vin2629
@vin2629 Год назад
Need a more advanced tutorial where the API calls are mocked
@aprimic
@aprimic 2 года назад
in what circumstance will the snapshot not match?
@patrickackom952
@patrickackom952 Год назад
how do you test apps with usecontext and api calls in them
@mybaby2262
@mybaby2262 2 года назад
How to write a test cases for big component lets say I have component with big business logic how could I write test cases for that
@jeff2000wu
@jeff2000wu Год назад
getting an error for this line: import renderer from 'react-test-renderer'; I install the package by npm install react-test-render , anyone know.
@danieltkach2330
@danieltkach2330 Год назад
I'm using Vite and not CRA, so the script for test does not exist, how do I set it up?
@maxdev6347
@maxdev6347 4 месяца назад
Which node version you use
@lekkyjayz6294
@lekkyjayz6294 3 года назад
Instead of: import renderer from 'react-test-renderer' use: import TestRenderer from 'react-test-renderer'
@willemkapenda2107
@willemkapenda2107 2 года назад
Thank you very much for this
@PierreLaBaguette
@PierreLaBaguette 2 года назад
why?
@juhandvan
@juhandvan 2 года назад
thanks
@KrisFoster1
@KrisFoster1 2 года назад
Glad you enjoyed!
@gmmkeshav
@gmmkeshav Год назад
what if we want to have more folders in __tests__ ?
@paviyarasanv4192
@paviyarasanv4192 Год назад
Can you please upload. how to test redux login page
@Steel0079
@Steel0079 2 года назад
Thanks for taking the time to make the video on the topic. I am running into a problem, near 17:07, where you place the below line of code in both tests. expect(todoElement).toContainHTML("") I get the error saying expect(element).toContainHTML() Expected: Received: Make dinner Can you please tell me why it isn't working for me?
@BumLowkey
@BumLowkey 2 года назад
try replace "" by "strike", I think different versions
@ainneo
@ainneo 2 года назад
it there a git repo for this?
@coolpythoncodes5768
@coolpythoncodes5768 2 года назад
🚀🚀🚀
@PierreLaBaguette
@PierreLaBaguette 2 года назад
my 2 cents - I believe that a to-do item would typically be an item in a list, therefore don't use DIV tag but LI (list item). it will also help your accessibility efforts and spread good practices and love :) edit: the same with the h1 element use - h1 is a main header of a page, Header level 1. pages should typically have only one element like that. why not use just P, Span or Strong instead? (check udacity course about Web Accessibility) + I'd love to see how you test state changes of elements, especially of parent and child element, each of them having co-related states
@jackstorm777
@jackstorm777 Год назад
It's a course on unit testing, not HTML best practices :)
@PierreLaBaguette
@PierreLaBaguette Год назад
@@jackstorm777 (bad) habits have high chances of becoming the default way of doing things. one might forget the good practices if they don't get applied when possible
@aprimic
@aprimic 2 года назад
you have the voice of Ross from friends, not the accent though
@KrisFoster1
@KrisFoster1 2 года назад
😂
@deathmetal0073
@deathmetal0073 Год назад
Kewl
@iliketocode6986
@iliketocode6986 2 года назад
So annoying how they change the api
@ax3lgarcia675
@ax3lgarcia675 Год назад
why sompeople speak about .babelrc or babel.config.js ? you don't speak about that
@jerodnilstead5985
@jerodnilstead5985 Год назад
nice tutorial, back up from the mic a bit, hearing your mouth function is quite unpleasant.
@NavySturmGewehr
@NavySturmGewehr Год назад
The lip smacking is just terrible. Why do people do that? I really want to watch your content but the lip smacking just drives me insane. It is so avoidable, it's like people don't take the time to listen to their audio before posting.
@Human_Evolution-
@Human_Evolution- 2 года назад
Not a fan of the const H1 stuff. Nope. And I hate tests. I think I hate every testing video on RU-vid.
@paridokhtalavinia
@paridokhtalavinia 2 года назад
Hi, thank you for this video, but expect(todoElement).toContainHTML('') is not working seems it should be expect(todoElement).toMatchSnapshot('');
@filcondrat
@filcondrat 2 года назад
yep
@Shaktish-kumar
@Shaktish-kumar 2 года назад
expect(todoElement).toContainHTML('strike'); This worked, use only the html tag name
@anmolgupta1407
@anmolgupta1407 2 года назад
Hi, Can I have your email id? It was not mentioned inside the 'About' section of your channel.
@456fghbsrtywrtwre
@456fghbsrtywrtwre 11 месяцев назад
Nice explanation. Although expect(todoElement).not.toContainHTML(''); this test does not work.
@AhmadMaartmesrini
@AhmadMaartmesrini 3 месяца назад
thank you
Далее
NodeJS & Express - Google OAuth2 using PassportJS
20:33
Next.js with React Testing Library, Jest, TypeScript
25:04
Stop Writing So Many Tests
10:02
Просмотров 81 тыс.
React Testing Crash Course
58:36
Просмотров 312 тыс.
Add Jest Unit Testing to React Vite
29:44
Просмотров 2,3 тыс.
The ONLY REASON To Unit Test
8:26
Просмотров 70 тыс.
Девушка и AirPods Max 😳
0:59
Просмотров 16 тыс.