React Testing Tutorial (Jest + React Testing Library)

Поділитися
Вставка
  • Опубліковано 21 січ 2025

КОМЕНТАРІ • 134

  • @marciocamollez7062
    @marciocamollez7062 2 роки тому +34

    Simply the best explanation from entire UA-cam. I'm studying react from 2 years and test library was the worst part to find some good videos. Congrats!

  • @andersonsimeon4172
    @andersonsimeon4172 9 місяців тому +1

    For a 3 years ago video, this is high quality staright to the point content. Thanks Man

  • @skyhawksp
    @skyhawksp 3 роки тому +7

    The most useful react jest testing tutorial video currently on UA-cam. Thank you!

  • @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');

  • @peacekper
    @peacekper Рік тому +1

    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

  • @christonit6895
    @christonit6895 3 роки тому +6

    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.

  • @seriouslee4119
    @seriouslee4119 Рік тому

    Bru, your voice is so soothing. I'm rewatching this video tonight instead of ASMR lol.

  • @JuaNeMe
    @JuaNeMe 3 роки тому +6

    Excellent video! I have been waiting a video like this with React Testing in an useful way for a long time.

    • @KrisFoster1
      @KrisFoster1  3 роки тому +2

      That's great, thank you for the feedback @juan ocho!

  • @carlosg8716
    @carlosg8716 2 роки тому +3

    Excellent video. I went from zero to added to my projects in 22 minutes and 15 seconds

  • @arunimaroy4383
    @arunimaroy4383 Рік тому +4

    toContainHtml method expects to pass html tag as a string without tag notaion so you need to replace '' with 'strike'.

  • @rupeshmody8901
    @rupeshmody8901 Рік тому +1

    Very simple and so far the best. Thank you.

  • @vadirajkanakagiri5028
    @vadirajkanakagiri5028 2 роки тому +2

    I'm getting the error as SyntaxError: Cannot use import statement outside a module, can you please help me with this

  • @BarbarosYurttagul
    @BarbarosYurttagul 8 місяців тому

    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.

  • @flying-musk
    @flying-musk 6 місяців тому

    12:10
    is tag still used for now?

  • @himallimbu007
    @himallimbu007 3 роки тому +3

    toContainHTML function is not working properly, can you please help?

  • @chenyangwang1930
    @chenyangwang1930 Рік тому +1

    Perfect tutorial! Really easy to understand

  • @khandoor7228
    @khandoor7228 3 роки тому +7

    please do more with testing!

  • @mahmoudhamdy819
    @mahmoudhamdy819 Рік тому

    thank you so much for great and brief react test explanation

  • @EminoMeneko
    @EminoMeneko 3 роки тому +1

    Nice quick start.

  • @HeshamElQuerm
    @HeshamElQuerm 3 роки тому

    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?

  • @saraswathijampala510
    @saraswathijampala510 2 роки тому

    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.

  • @martinharyanto4465
    @martinharyanto4465 Рік тому +4

    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 👍

  • @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.

  • @jackstorm777
    @jackstorm777 2 роки тому

    Excellent tutorial, lots of good info in 20 minutes!

  • @gmmkeshav
    @gmmkeshav Рік тому

    what if we want to have more folders in __tests__ ?

  • @gnumanoj
    @gnumanoj 3 роки тому +1

    most useful video so far ! :) Thank you!

  • @joseff5998
    @joseff5998 Рік тому

    Thanks for clear and simple explanation.

  • @danieltkach2330
    @danieltkach2330 2 роки тому

    I'm using Vite and not CRA, so the script for test does not exist, how do I set it up?

  • @nusskugeldingsi
    @nusskugeldingsi 2 роки тому +5

    Nice overview of testing with Jest in React!
    BTW the Todo component inside the map loop is missing a key prop. ;)

    • @I3uzzzzzz
      @I3uzzzzzz 2 роки тому

      ur life is missing a dad ;)

  • @PilipalaOnEarth
    @PilipalaOnEarth 5 місяців тому

    Thank you! It's very helpful to me.

  • @josephcobbinah5412
    @josephcobbinah5412 2 роки тому +1

    Great stuff man!!

  • @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

  • @patrickackom952
    @patrickackom952 2 роки тому

    how do you test apps with usecontext and api calls in them

  • @MietekPomywacz
    @MietekPomywacz Рік тому

    Very good video, explained in a simple way :)

  • @damo190
    @damo190 3 роки тому +1

    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 роки тому +3

      I made some videos a while back on some of those technologies:
      cypress - m.ua-cam.com/video/woI490HRM34/v-deo.html
      mocha/chai - m.ua-cam.com/video/FKOstRrwT5w/v-deo.html

  • @aprimic
    @aprimic 3 роки тому

    in what circumstance will the snapshot not match?

  • @lyndontan1561
    @lyndontan1561 3 роки тому +3

    Perfect time and a perfect example thank you!!!! from PH
    please do more sample like using hooks State T.I.A

  • @poenaeco
    @poenaeco 3 роки тому +2

    What is the extension you are using in the console? Thanks for the tutorial btw.

    • @poenaeco
      @poenaeco 3 роки тому +1

      I mean for the GIT.

    • @KrisFoster1
      @KrisFoster1  3 роки тому +1

      Hi @poenaeco, it's called ohmyzsh. I find it very useful. Here's a link with steps to install ohmyz.sh/

    • @poenaeco
      @poenaeco 3 роки тому +1

      @@KrisFoster1 Thanks for the reply.

  • @maxdev6347
    @maxdev6347 11 місяців тому

    Which node version you use

  • @awefawefwaef
    @awefawefwaef 2 роки тому

    what window manager are you using?

  • @alainhonorekubwayo8819
    @alainhonorekubwayo8819 2 роки тому

    Excellent tutorial!

  • @parid0khtt
    @parid0khtt 3 роки тому +5

    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 роки тому +2

      expect(todoElement).toContainHTML('strike');
      This worked, use only the html tag name

  • @gina7898
    @gina7898 2 роки тому

    This was so helpful. Thank you!

  • @mauroinde
    @mauroinde 2 роки тому

    new subscriber, clear class

  • @aanandantma9573
    @aanandantma9573 3 роки тому

    Are you using any extension for jest intellisense?

  • @smhmkkh
    @smhmkkh 3 роки тому

    Thank you, that was great. The only part i didn’t understand was what is snapshot

  • @adityanair1001
    @adityanair1001 3 роки тому

    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.

  • @harelweingarten
    @harelweingarten Рік тому

    Great tutorial , TNX.

  • @554-manjushriparkhe4
    @554-manjushriparkhe4 2 роки тому +1

    Thank you so much for this vedio great vedio

  •  10 місяців тому

    awesome content , thank you very much your time.

  • @MrAndykofi
    @MrAndykofi 3 роки тому

    Excellent, thanks a lot, was good to watch.

  • @marvinotieno2194
    @marvinotieno2194 10 місяців тому

    This video is really good

  • @dinidulochana3295
    @dinidulochana3295 3 роки тому +1

    Great content!!
    Thank you.

  • @ainneo
    @ainneo 3 роки тому

    it there a git repo for this?

  • @LeanneLacey-Byrne
    @LeanneLacey-Byrne Рік тому

    Nice hi Kris,
    From Ireland too

  • @lekkyjayz6294
    @lekkyjayz6294 3 роки тому +1

    Can you make a tutorial about react redux unit testing?

  • @zaw_w_lwin
    @zaw_w_lwin 3 роки тому +29

    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  3 роки тому +22

      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 3 роки тому +1

      @@KrisFoster1 Even Kent Dodds said he rarely goes full TDD and prefers to use a more iterative approach

    • @jackstorm777
      @jackstorm777 2 роки тому +1

      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.

  • @sureshanands
    @sureshanands 3 роки тому +2

    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 ❤️👍

  • @sukhsingh7057
    @sukhsingh7057 2 роки тому

    Great guide!

  • @spytyler
    @spytyler 3 роки тому

    Great video. Very helpful

  • @akunduru4
    @akunduru4 3 роки тому

    Thanks for the video. How do we get that back quote in the VSC in the data-testid={'todo-${id}'} ?

  • @jaceborg
    @jaceborg 3 роки тому +1

    Great video, really well explained, thanks :)

  • @oliver1231033
    @oliver1231033 3 роки тому +1

    awesome content, thank you!

  • @cristoslaher
    @cristoslaher 2 роки тому

    Great! Really helpful

  • @charithamila9194
    @charithamila9194 3 роки тому

    Thanks a lot. Very helpful

  • @bautista-cutraro
    @bautista-cutraro 3 роки тому

    Great video!

  • @marcelhumes1360
    @marcelhumes1360 Рік тому

    Thank you Kris.

  • @Leo-bl3ge
    @Leo-bl3ge 3 роки тому +1

    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

  • @todaysrapsux123
    @todaysrapsux123 3 роки тому

    thank you! subscribed!

  • @grumly85
    @grumly85 2 роки тому +1

    I've got pink panther in my head now with all these 'todo, todo, todo,...'
    Nice tutorial still

  • @Saje3l
    @Saje3l 2 роки тому

    Totally Awesome!!!

  • @Steel0079
    @Steel0079 3 роки тому

    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 роки тому +3

      try replace "" by "strike", I think different versions

  • @jeanlaguna6949
    @jeanlaguna6949 2 роки тому +1

    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 .

  • @cloudsss83
    @cloudsss83 Рік тому

    you should create more tuts... you`re good. thanks

  • @paviyarasanv4192
    @paviyarasanv4192 2 роки тому

    Can you please upload. how to test redux login page

  • @FelipePereiradaSilva-q7f
    @FelipePereiradaSilva-q7f Рік тому

    Thank you so much!

  • @vin2629
    @vin2629 Рік тому

    Need a more advanced tutorial where the API calls are mocked

  • @oleksandrhusiev6544
    @oleksandrhusiev6544 3 роки тому +1

    Top, thanks!

  • @lekkyjayz6294
    @lekkyjayz6294 3 роки тому +2

    Instead of:
    import renderer from 'react-test-renderer'
    use:
    import TestRenderer from 'react-test-renderer'

  • @bhaskardas3777
    @bhaskardas3777 2 роки тому

    U are awesome.

  • @IncolasCopperfield
    @IncolasCopperfield 3 роки тому +1

    thank you

  • @ManishKumar-mi7ko
    @ManishKumar-mi7ko 3 роки тому

    thank you so much

  • @ax3lgarcia675
    @ax3lgarcia675 2 роки тому

    why sompeople speak about .babelrc or babel.config.js ? you don't speak about that

  • @coolpythoncodes5768
    @coolpythoncodes5768 3 роки тому +1

    🚀🚀🚀

  • @PierreLaBaguette
    @PierreLaBaguette 3 роки тому

    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 2 роки тому +1

      It's a course on unit testing, not HTML best practices :)

    • @PierreLaBaguette
      @PierreLaBaguette 2 роки тому +1

      @@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 3 роки тому +1

    you have the voice of Ross from friends, not the accent though

  • @Daniel__g12
    @Daniel__g12 6 місяців тому

    Get the lowdown on future developments in an exclusive interview with Binance's CEO

  • @iliketocode6986
    @iliketocode6986 3 роки тому

    So annoying how they change the api

  • @juhandvan
    @juhandvan 3 роки тому +1

    thanks

  • @jerodnilstead5985
    @jerodnilstead5985 2 роки тому

    nice tutorial, back up from the mic a bit, hearing your mouth function is quite unpleasant.

  • @deathmetal0073
    @deathmetal0073 2 роки тому

    Kewl

  • @NavyCuda
    @NavyCuda 2 роки тому

    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 UA-cam.

  • @anmolgupta1407
    @anmolgupta1407 3 роки тому

    Hi,
    Can I have your email id? It was not mentioned inside the 'About' section of your channel.

  • @LS9690
    @LS9690 Рік тому

    Nice explanation. Although expect(todoElement).not.toContainHTML(''); this test does not work.

  • @aaronmatto1375
    @aaronmatto1375 2 роки тому

    Amazing video. Thank you!

  • @AhmadMaartmesrini
    @AhmadMaartmesrini 11 місяців тому

    thank you