When running unit tests, you don’t want to actually make network requests or charge real credit cards. That could… get expensive… and also very, very slow. So instead of running your code exactly as it would run in production, you can modify how some of your JavaScript modules and functions work during tests to avoid test unreliability (flakiness) and improve the speed of your tests. This kind of modification can come in the form of stubs, mocks, or generally: “test doubles.”
There are some great libraries and abstractions for mocking your JavaScript modules during tests. The Jest testing framework has great mocking capabilities built-in for functions as well as entire modules. To really understand how things are working though, let’s implement some of these features ourselves.
Kent is a JavaScript developer who likes open source and teaching.
He is currently working for himself as a full-time educator. Before going full-time on education, Kent worked at PayPal. During his time there he represented the company on the TC39 committee and started several Open Source projects, notably glamorous💄, downshift 🏎️ and dom-testing-library 🐙.