JavaScript Testing - Mocking Async Code

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.ย. 2024
  • Testing async JavaScript code or testing JS dependencies in general can be difficult. But "mocking" is a technique that can easily be implemented with Jest to make JavaScript testing a breeze again.
    ----------
    Starting Code: github.com/aca...
    Finished Code: github.com/aca...
    Learn JavaScript from scratch: acad.link/js
    Want to learn something totally different? Check out all other courses: academind.com/...
    ----------
    • You can follow Max on Twitter (@maxedapps).
    • And you should of course also follow @academind_real.
    • You can also find us on Facebook.( / academindchannel )
    • Or visit our Website (www.academind.com) and subscribe to our newsletter!
    See you in the videos!
    ----------
    Academind is your source for online education in the areas of web development, frontend web development, backend web development, programming, coding and data science! No matter if you are looking for a tutorial, a course, a crash course, an introduction, an online tutorial or any related video, we try our best to offer you the content you are looking for. Our topics include Angular, React, Vue, Html, CSS, JavaScript, TypeScript, Redux, Nuxt.js, RxJs, Bootstrap, Laravel, Node.js, Progressive Web Apps (PWA), Ionic, React Native, Regular Expressions (RegEx), Stencil, Power BI, Amazon Web Services (AWS), Firebase or other topics, make sure to have a look at this channel or at academind.com to find the learning resource of your choice!

ความคิดเห็น • 101

  • @ultrasamad
    @ultrasamad 5 ปีที่แล้ว +103

    Testing is something you don't quite often find in most tutorials. Thanks for tackling this all important topic.

    • @academind
      @academind  5 ปีที่แล้ว +17

      I also think it's an important topic, happy to read that you liked the video Ibrahim!

    • @jaycesullivan8512
      @jaycesullivan8512 3 ปีที่แล้ว

      You prolly dont give a damn but does someone know of a trick to get back into an Instagram account??
      I was stupid lost the login password. I love any tricks you can give me!

  • @riyazghati6615
    @riyazghati6615 5 ปีที่แล้ว +16

    Every time I see your technical videos, all my doubts,confusions vanishes ....amazing work😍😍

  • @inclinedscorpio
    @inclinedscorpio 3 ปีที่แล้ว +1

    Hey Max! This is Ashutosh Tiwari ! Thanks for this ❤️ As always you are great !

  • @sandeepamarnath2272
    @sandeepamarnath2272 2 ปีที่แล้ว +1

    As always, you're the best tutor! Note: Max, when I open the link to the github to clone the code I got the previous video's code and not the one you teach here about mock. Not sure if it's only for me but please take a look so it will help others to easily code along.
    Again, thanks a lot as usual for your wonderful tutorial.

    • @MrMacjo22
      @MrMacjo22 ปีที่แล้ว

      "git switch async-code" should help you out

  • @gabrielprrd
    @gabrielprrd 3 ปีที่แล้ว +1

    Honestly the best explanation I could find on mocking. Thank you :)

  • @unutilized
    @unutilized 3 ปีที่แล้ว +1

    You are such a gifted teacher. So focused. Thank you

  • @rodrigomarsan1143
    @rodrigomarsan1143 2 ปีที่แล้ว +1

    I would really love a full course on testing with jest, enzyme and react testing library

  • @andriantsygulev7806
    @andriantsygulev7806 5 ปีที่แล้ว +3

    Hi, Max
    Thank you for this video.
    This is the best explanation of moking with jest, that I found!
    I was not familiar with using moke functions, before watching this video, but now I can use this great thing for testing methods in my project)

  • @HuyLe-vv7go
    @HuyLe-vv7go 5 ปีที่แล้ว +4

    Hey Max, you should add Unit Test into your Udemy Angular 2+ Courses to make it even more great. Love your works btw.

  • @cvanputt
    @cvanputt 4 ปีที่แล้ว +3

    Really excellent instruction! I bought your React course on Udemy. You are a very good teacher Thank You!

    • @academind
      @academind  4 ปีที่แล้ว

      Awesome, thank you!

  • @ossie500
    @ossie500 4 ปีที่แล้ว

    Best explanation of jest mocking so far. Thanks

    • @academind
      @academind  4 ปีที่แล้ว

      Awesome to read that Ossie, thanks a lot!

  • @JeremyMoritz1
    @JeremyMoritz1 3 ปีที่แล้ว +2

    Max, the starting code you linked in the description is actually the code from the PREVIOUS video. I cannot seem to find anywhere the starting code for this video. Can you please include it? Thanks for another great tutorial!

    • @smartypantscoder6912
      @smartypantscoder6912 3 ปีที่แล้ว

      It's there. You need to use command 'git checkout async-code' in the terminal. You will need the git installed for that. This one repo contains all codes from all different project. But they are in different branches.
      after checking out async-code branch, you will have to enter 'git checkout 87dbd' because the data is in that commit.

  • @alexpro5670
    @alexpro5670 2 ปีที่แล้ว

    Cool tests with Jest

  • @sbacon92
    @sbacon92 3 ปีที่แล้ว

    Excellent video.
    I've been using mocha/chia/nyc for years.
    I think i'll try jest.

  • @khalidelgazzar
    @khalidelgazzar ปีที่แล้ว

    Great video, though Concepts are more advanced than the previous video

  • @ippenshindemiru8023
    @ippenshindemiru8023 ปีที่แล้ว

    my friend,just perfect.................

  • @dmitrik5566
    @dmitrik5566 2 ปีที่แล้ว

    Is this possible to do in angular with is configured to use jest? Is it possible to override a function manually like in the video?

  • @ivanaleksandrov7157
    @ivanaleksandrov7157 5 ปีที่แล้ว

    Max, you nailed the technical stuff, how about a video or even better a series on being a freelance developer?

    • @academind
      @academind  5 ปีที่แล้ว

      We'll mainly stick to the technical stuff, but we also consider releasing some none technical videos. So we'll see :)

  • @dariogabalec13
    @dariogabalec13 4 ปีที่แล้ว

    best explanation about Mocking on the internet, thanks! 😀

  • @cryptoeric24
    @cryptoeric24 2 ปีที่แล้ว

    When I run my mocks with --coverage I do not get any coverage, but when I run my test without the mocks I get coverage. Does Jest not cover mocked code??

  • @driden1987
    @driden1987 4 ปีที่แล้ว

    Hahaha, Max always pops up when searching for something I need

  • @twinstars3428
    @twinstars3428 3 ปีที่แล้ว

    A very nice tutorial on javascript testing. Thank you.

  • @snake1625b
    @snake1625b 3 ปีที่แล้ว

    10/10 explanation

  • @AF-it4ib
    @AF-it4ib 3 ปีที่แล้ว

    Great video mate !!!! Thanks

  • @kwekukilu2196
    @kwekukilu2196 4 ปีที่แล้ว

    This is the best explanation ever

  • @jelenatrifkovic5567
    @jelenatrifkovic5567 ปีที่แล้ว

    Thank you for this video.

  • @maurobagnoli3415
    @maurobagnoli3415 3 ปีที่แล้ว

    Great metaphore in the cover XD

  • @peeeeb
    @peeeeb 3 ปีที่แล้ว

    Super helpful, thanks Max!

  • @cempesket7694
    @cempesket7694 5 ปีที่แล้ว

    Wow. Jest is just amazing. Thank you Max

    • @academind
      @academind  5 ปีที่แล้ว

      Happy to read that you like the video, thank you for your comment!

  • @jadetaboada447
    @jadetaboada447 4 ปีที่แล้ว

    how can we stub this?
    // some module, "sum.js" that's "required" throughout the application
    module.exports = function(a, b) {
    return a + b;
    };

  • @kisanpakhreen
    @kisanpakhreen 4 ปีที่แล้ว

    thank you for the tutorial. Please make more videos in testing.

  • @nenadtrajkovic2715
    @nenadtrajkovic2715 3 ปีที่แล้ว

    Hi, how can we use map() function inside loadTitle() if response.data from fetchData() return array of objects? How we mock that, I get error map is not a function. Thank You

  • @saek7593
    @saek7593 ปีที่แล้ว

    Max, thank you so much!!!

  • @mrpiggy9793
    @mrpiggy9793 5 ปีที่แล้ว

    great video really helpful, everything is explained as clear as water

  • @duinho
    @duinho 5 ปีที่แล้ว

    Just subscribed after watching this video. Thanks so much!

    • @academind
      @academind  5 ปีที่แล้ว

      Thank you for your support, great to have you on board!

  • @StarContract
    @StarContract 3 ปีที่แล้ว

    That was crystal clear, thanks

  • @kartamyshevk
    @kartamyshevk 5 ปีที่แล้ว

    Would be nice to mention that "done" should be executed in the end of async tests in order to have proper test results (just try to resolve Promise with unexpected value without calling "done"). Thanks for the video otherwise! Very useful.

  • @rajgohil8610
    @rajgohil8610 2 ปีที่แล้ว

    Thanks for the help

  • @fotoflo
    @fotoflo 3 ปีที่แล้ว

    Hi, How can I mock an api request time out or rejection for rate limiting so I can build back off functions?

  • @akasharojee8569
    @akasharojee8569 3 ปีที่แล้ว

    Good explanation! Thanks.

  • @dominiktargosz3094
    @dominiktargosz3094 5 ปีที่แล้ว

    But what if I don't know what will be the response from the API? For example when I fetch new random word with every request to the server

  • @superknife0512
    @superknife0512 5 ปีที่แล้ว

    Hi Max and Academind team, I see they say about some things like ESlint, Jshint ,... but actually what's that and why we need to use it in our project. Can you make a Video to explain about one of them and how to use it.

  • @maksym7279
    @maksym7279 ปีที่แล้ว

    Great! Thanks!

  • @dataninjanl1263
    @dataninjanl1263 3 ปีที่แล้ว

    Does this mean that when you change the fetchdata function, you also have to change it’s mock or are there any tools that can help with this?

  • @antonijakasum313
    @antonijakasum313 2 ปีที่แล้ว

    Great video!

  • @romanlisenko271
    @romanlisenko271 5 ปีที่แล้ว +1

    how to start and open in chrome this code what is in github??

  • @BreakingGame
    @BreakingGame 4 ปีที่แล้ว +2

    Excelente explicação. Thank you!

  • @RohitKumar-yy8yh
    @RohitKumar-yy8yh 3 ปีที่แล้ว

    How to cover onkeydown property

  • @SithaSek
    @SithaSek 4 ปีที่แล้ว

    Why no import the mock axios.js while http is imported?

  • @alexchiu
    @alexchiu 4 ปีที่แล้ว

    can you mock the browser fetch api using this same method?

  • @EricOnYouTube
    @EricOnYouTube 4 ปีที่แล้ว

    Max, I am trying to be good and start writing tests for my code. But I have a problem.... since all tests should be an island, what I do in one test should not influence another. The problem is that my variable, for example, that holds a list of all the users who have joined the game will hold data from a previous test. How do I deal with variables like that? Thanks.

  • @davidoliveira242
    @davidoliveira242 3 ปีที่แล้ว

    Thanks Max!

  • @Raamyy
    @Raamyy 4 ปีที่แล้ว

    I think there is a problem or something i don't understand.
    in 16:47 the test file says that we expect to get "DELECTUS..." ( all UPPER case).
    while in the __Mocks__ file in 16:48 we promise to return "delectus..." (all lower case)
    How are the test cases passing ? I think that they should fail.
    Thanks for the videos !

    • @adamtki
      @adamtki 4 ปีที่แล้ว

      We're not testing the get method. We're testing the loadTitle component which uses our mocked get method and uppercases the returned value from get.

  • @EleandroReis
    @EleandroReis 4 ปีที่แล้ว

    Max you are the best!

  • @ramonportela7048
    @ramonportela7048 5 ปีที่แล้ว +1

    OMG! Max you are awesome!

    • @academind
      @academind  5 ปีที่แล้ว

      YOU are awesome Ramon, thank you very much for your comment!

  • @damoose5788
    @damoose5788 5 ปีที่แล้ว

    Plz help with react redux pagination ... there is nothing available on this ...

  • @sebastianjung3168
    @sebastianjung3168 5 ปีที่แล้ว

    Hey Max,
    could you also just return the object with the title property in the mock http.js instead of returning it as a resolved Promise or why does it have to be a resolved Promise 🤔

    • @sebastianjung3168
      @sebastianjung3168 5 ปีที่แล้ว

      Ah! We need to use .then onto the fetchData function. that's why.
      Thanks for this interesting series!

  • @snillochemingson2830
    @snillochemingson2830 ปีที่แล้ว

    beautiful

  • @emarcelino3
    @emarcelino3 4 ปีที่แล้ว

    very, again, very good!

  • @monishutube
    @monishutube 3 ปีที่แล้ว

    Thank you!!

  • @jean-baptistelasselle4562
    @jean-baptistelasselle4562 4 ปีที่แล้ว

    I like the funny accent lol
    The subject of vidéo is very pertinent thank u

  • @sourishdutta9600
    @sourishdutta9600 5 ปีที่แล้ว

    Hi Max can you please make a tutorial on Angular universal and Angular playground. please .............................

  • @alexandrovcharenko9769
    @alexandrovcharenko9769 5 ปีที่แล้ว

    really cool! thanks!

    • @academind
      @academind  5 ปีที่แล้ว

      Happy to read that you like it, thank you!

  • @ashisharora9694
    @ashisharora9694 5 ปีที่แล้ว

    hello bro how ru . i need ur help , i want to learn only one in Angular , Vue and react . plz telme which is best in all . i saw ur video abt this topic. . i want ur personal opinion . if ur beginner then which will u select . plz tell me 1 .which one best in job n future .

    • @academind
      @academind  5 ปีที่แล้ว +1

      In the video I actually share my personal opinion Ashish, so I think I can't help you here, sorry :/

    • @ashisharora9694
      @ashisharora9694 5 ปีที่แล้ว

      bro no need for any sorry . i already saw ur that video . i know u love React heheehhe , love u . god bless u . keep smiling

  • @marioeldin9315
    @marioeldin9315 2 ปีที่แล้ว

    How convenient would it be to tell my engineering manager - “hey I just decided to take a few functions in this micro service and slap em in a util file because Jest was busting balls”. Yaaaa… not likely. It would of been good to see the work needed to get a passing test with your application as is because that luxury of moving around functions for testing will not pass any PR.

  • @dakshsagar2839
    @dakshsagar2839 5 ปีที่แล้ว

    In the video description, data science is mentioned, am I missing something ?

    • @academind
      @academind  5 ปีที่แล้ว +1

      We do have some beginner's data science/business intelligence topics (for example about Power BI: academind.com/learn/power-bi). But at the moment the focus indeed is on web development.

  • @Bacisful
    @Bacisful 5 ปีที่แล้ว

    Thanks a lot!

  • @ahmedmusawir
    @ahmedmusawir 5 ปีที่แล้ว

    Can you plz help replace componentWillReceiveProps with componentWillReceiveProps ... there is pretty much no help on this anywhere ...

  • @daviaugusto4828
    @daviaugusto4828 3 ปีที่แล้ว

    thanks man!

  • @porco666
    @porco666 5 ปีที่แล้ว

    can you please make a serie teaching how to make some project, e.g. an api, using BDD? i would pay for that on udemy.
    BDD front end (vue, react) projects also is a rare content... i would pay fot that too...

  • @safraz1400
    @safraz1400 3 ปีที่แล้ว

    awesome

  • @khalidahmada3906
    @khalidahmada3906 5 ปีที่แล้ว

    what about Moxios ?

  • @tripathi.mridul
    @tripathi.mridul 3 ปีที่แล้ว

    Awesome!!!!!!!

  • @TDAK1509
    @TDAK1509 4 ปีที่แล้ว

    You saved my life!

  • @milesrostami1782
    @milesrostami1782 5 ปีที่แล้ว

    Hey max, what is the best way to test the setState callback using mocha and enzyme?
    onChangeHandler(e) {
    const { state } = this.props;
    this.setState({ search: e.target.value }, () => {
    const { search } = this.state;
    autocomplete(search).then((suggestions) => {
    if (suggestions.length > 0) {
    this.setState({
    suggestions,
    });
    }
    });
    })
    }

  • @tkdevlop
    @tkdevlop 5 ปีที่แล้ว

    let me guess moxios?

  • @shabeebck3057
    @shabeebck3057 4 ปีที่แล้ว

    It just slow down the development

  • @gsffm9044
    @gsffm9044 3 ปีที่แล้ว

    app.js is not the same I got from github. Schade

  • @LifeIsGood1992
    @LifeIsGood1992 5 ปีที่แล้ว

    Thank you!!