JavaScript Testing - Mocking Async Code

Поділитися
Вставка
  • Опубліковано 5 вер 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😍😍

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

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

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

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

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

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

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

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

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

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

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

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

  • @AF-it4ib
    @AF-it4ib 3 роки тому

    Great video mate !!!! Thanks

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

    A very nice tutorial on javascript testing. Thank you.

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

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

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

    10/10 explanation

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

    Great metaphore in the cover XD

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

  • @kisanpakhreen
    @kisanpakhreen 4 роки тому

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

  • @kwekukilu2196
    @kwekukilu2196 4 роки тому

    This is the best explanation ever

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

    Thank you for this video.

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

    Super helpful, thanks Max!

  • @driden1987
    @driden1987 4 роки тому

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

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

    Good explanation! Thanks.

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

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

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

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

    Thanks for the help

  • @mrpiggy9793
    @mrpiggy9793 5 років тому

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

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

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

  • @BreakingGame
    @BreakingGame 4 роки тому +2

    Excelente explicação. Thank you!

  • @romanlisenko271
    @romanlisenko271 5 років тому +1

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

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

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

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

    Max, thank you so much!!!

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

    Great video!

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

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

  • @SithaSek
    @SithaSek 4 роки тому

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

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

    Thanks Max!

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

  • @alexchiu
    @alexchiu 4 роки тому

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

  • @RohitKumar-yy8yh
    @RohitKumar-yy8yh 3 роки тому

    How to cover onkeydown property

  • @damoose5788
    @damoose5788 5 років тому

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

  • @ramonportela7048
    @ramonportela7048 5 років тому +1

    OMG! Max you are awesome!

    • @academind
      @academind  5 років тому

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

  • @EleandroReis
    @EleandroReis 4 роки тому

    Max you are the best!

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

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

    Thank you!!

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

    beautiful

  • @emarcelino3
    @emarcelino3 4 роки тому

    very, again, very good!

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

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

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

  • @jean-baptistelasselle4562
    @jean-baptistelasselle4562 4 роки тому

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

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

    thanks man!

  • @ahmedmusawir
    @ahmedmusawir 5 років тому

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

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

  • @khalidahmada3906
    @khalidahmada3906 5 років тому

    what about Moxios ?

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

  • @tripathi.mridul
    @tripathi.mridul 3 роки тому

    Awesome!!!!!!!

  • @tkdevlop
    @tkdevlop 5 років тому

    let me guess moxios?

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

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