Code Monkey home page Code Monkey logo

js-mocking-fundamentals's Introduction


Learn how mocking in JavaScript tests works by implementing them from scratch!


In this material, we have a set of no-framework tests that correspond to a set of jest tests (in the __tests__ directory). The idea is that (with the exception of the first test), you look at the jest version first, then see how that would be implemented without a testing framework.

Order of material:

  1. monkey-patching.js (no jest version)
  2. mock-fn.js
  3. spy.js
  4. inline-module-mock.js
  5. external-mock-module.js

The files are intended to test the thumb-war.js module and mock the utils module.

To run the tests, run npx jest. To start watch mode run npx jest --watch

Custom jest runner.

You can definitely run the no-framework files just using node (like this: node src/no-framework/monkey-patching.js), but in an effort to make running these easier, I created a custom jest runner that uses jest to run the files, but allow them to be run without the jest testing framework. It's really cool. It uses create-jest-runner and should probably be published eventually.

js-mocking-fundamentals's People

Contributors

aprillion avatar danly avatar kentcdodds avatar paulogoncalvesbh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

js-mocking-fundamentals's Issues

ReferenceError: utils is not defined

cloned this repo, did a npm i then npm t and the error occurred:
PASS jest src/tests/spy.js
FAIL jest src/tests/external-mock-module.js
โ— returns winner

ReferenceError: utils is not defined

13 |
14 | // cleanup

15 | utils.getWinner.mockReset()
| ^
16 | })
17 |
I thought lets but this course as i got tired of all the blogs that claimed to work but dont and now here are same problems, slightly disappointed, probably is problem between keyboard and the back of my chair :)
regards
Ronald

jest.spyOn behaviour

Hi Kent!

I would like to ask you about jest.spyOn. In your course you have mentioned that spyOn does replace original implementation with an empty mock function. According to Jest's documentation and my own experience with using that function it doesn't by default. Was that a mistake :)?

Cheers and thank you for your awesome job!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.