Skip to content

Sagar Kunwar

Menu
  • Home
  • YouTube
  • Blog
  • Contemplation
  • Contact
Menu

Intro to Unit Testing in JavaScript with Jest

Posted on May 4, 2025May 4, 2025 by Sagar Kunwar

Intro to Unit Testing in JavaScript with Jest

Hello there, fellow coder! 🌟 Are you ready to explore the world of unit testing in JavaScript with Jest? If so, grab your favorite cup of coffee, and let’s dive in!

Why Unit Testing?

Before jumping into the tool itself, let’s discuss why unit testing matters. Imagine you’ve built a nifty feature for a website, and everything seems great. But what if hidden bugs lurk in your code? That’s where unit testing comes in! It’s like a safety net, catching errors early in the development process.

Unit tests help you:

– Ensure code quality: Tests verify that your code behaves as expected.
– Make changes confidently: Refactor your code without fear of breaking existing functionality.
– Document your code: Tests explain what your code is supposed to do.

Feeling convinced? Awesome! Let’s get into it.

Setting Up Jest

To start unit testing in JavaScript, we’ll use Jest, a popular testing framework developed by Facebook. It’s simple, fast, and works out of the box with minimal configuration.

Step 1: Initialize Your Project

First, make sure you have Node.js installed. Then, create a new project directory and initialize it:

bash
mkdir my-jest-project
cd my-jest-project
npm init -y

Step 2: Install Jest

Next, install Jest as a development dependency:

bash
npm install --save-dev jest

Open your package.json file and add a test script:

json
"scripts": {
"test": "jest"
}

Great! You’re all set to start writing your first test.

Writing Your First Unit Test

Let’s keep things simple. We will write a test for a basic JavaScript function that adds two numbers.

Step 1: Create a Function

In the root directory of your project, create a file named math.js:

javascript
// math.js
function add(a, b) {
return a + b;
}

module.exports = add;

Step 2: Write a Test

Testing a function is all about describing what you expect it to do. Create a new file called math.test.js:

javascript
// math.test.js
const add = require('./math');

test('adds 1 + 2 to equal 3', () => {
expect(add(1, 2)).toBe(3);
});

Step 3: Run the Test

Now, run the test using the following command:

bash
npm test

You should see a green output indicating that your test passed. 🎉

Understanding the Code

– test is a Jest function that runs a test. It takes two arguments: a string that describes the test and a function that contains the test code.
– expect is used to make assertions about the function being tested.
– toBe checks if the value returned by add(1, 2) is 3.

Adding More Tests

Let’s introduce another function to explore multiple assertions.

Calculating Area of a Circle

Update your math.js file:

javascript
// math.js
function add(a, b) {
return a + b;
}

function circleArea(radius) {
return Math.PI radius radius;
}

module.exports = { add, circleArea };

Now, add tests for the new function in math.test.js:

javascript
// math.test.js
const { add, circleArea } = require('./math');

test('adds 1 + 2 to equal 3', () => {
expect(add(1, 2)).toBe(3);
});

test('calculates the area of a circle with radius 3', () => {
expect(circleArea(3)).toBeCloseTo(28.27, 2);
});

What’s New Here?

– toBeCloseTo: Since floating-point arithmetic can be tricky, toBeCloseTo is used to check for approximate equality.

Tips for Writing Good Tests

– Keep tests specific: Each test should cover a small and specific piece of functionality.
– Name your tests clearly: Make it obvious what the test is verifying.
– Test edge cases: Consider the boundaries and unusual scenarios that might break your function.

Conclusion and Practice Ideas

Congratulations! You’ve taken your first steps into unit testing with Jest. We’ve covered the basics: setting up Jest, writing and running tests, and some handy Jest-specific assertions.

Practice Ideas

– Add a new function, like subtracting or multiplying, and write tests for it.
– Explore testing asynchronous code using Jest’s async capabilities.
– Try mocking external code to isolate what you’re testing.

Testing is a skill honed with practice, so keep experimenting and learning.

Thanks for joining me on this testing journey! 🙌 I’d love to hear how your coding and testing adventures go. Feel free to drop a comment or reach out if you have questions.

Happy coding, and may your tests be ever green! 🚀

(Visited 6 times, 1 visits today)

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Adding a Commenting System to Your Website with Disqus and Giscus
  • Creating a Tech Blog with Jekyll and GitHub Pages
  • Using Environment Variables in Your Node.js App
  • How to Structure a Scalable Project in Node.js

Categories

  • Blog
  • Javascript
  • PHP
  • Support
  • Uncategorized
  • Web Hosting
May 2025
S M T W T F S
 123
45678910
11121314151617
18192021222324
25262728293031
« Apr    
© 2025 Sagar Kunwar | Powered by Superbs Personal Blog theme