/js-mocking-fundamentals

JavaScript Mocking Fundamentals on TestingJavaScript.com

Primary LanguageJavaScriptOtherNOASSERTION

Learn the smart, efficient way to test any JavaScript application.

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.

To run jest tests

npm test src/__tests__/mock-fn.js