Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b563d81

Browse files
docs: unit testing with mocha & chai
1 parent 13b7a65 commit b563d81

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
## 8.1. Unit Testing with Mocha and Chai
2+
3+
Unit testing is a fundamental practice in software development to ensure that individual components of your codebase work correctly in isolation. In this section, you will learn about unit testing using Mocha and Chai, two widely used JavaScript testing frameworks. We'll cover the basics and provide examples to help you get started.
4+
5+
### What is Mocha?
6+
7+
[Mocha](https://mochajs.org/) is a flexible and feature-rich JavaScript test framework that provides a comprehensive testing suite. It supports various assertion libraries, including Chai, making it an excellent choice for unit testing.
8+
9+
### What is Chai?
10+
11+
[Chai](https://www.chaijs.com/) is a popular assertion library for JavaScript. It works well with Mocha and allows you to write expressive and human-readable assertions about the behavior of your code.
12+
13+
### Setting Up Mocha and Chai
14+
15+
Before you start writing tests, you need to set up Mocha and Chai in your project. You can do this using Node.js and npm (Node Package Manager). Here's how to set up a basic project structure:
16+
17+
1. Create a new directory for your project and navigate to it in the terminal.
18+
19+
2. Initialize a new Node.js project by running:
20+
21+
```bash
22+
npm init -y
23+
```
24+
25+
3. Install Mocha and Chai as development dependencies:
26+
27+
```bash
28+
npm install mocha chai --save-dev
29+
```
30+
31+
4. Create a directory to store your tests. Let's name it `test`.
32+
33+
5. Inside the `test` directory, create a JavaScript file for your tests. For example, `my-test.js`.
34+
35+
### Writing Your First Test
36+
37+
Now that your project is set up, you can start writing tests. In your `my-test.js` file, you'll use Mocha and Chai to write a simple test case.
38+
39+
```javascript
40+
const chai = require('chai');
41+
const assert = chai.assert;
42+
43+
// The function to be tested
44+
function add(a, b) {
45+
return a + b;
46+
}
47+
48+
// Describe the test suite
49+
describe('add function', function () {
50+
// Test case 1
51+
it('should add two numbers', function () {
52+
const result = add(2, 3);
53+
// Use Chai assertions to check the result
54+
assert.equal(result, 5);
55+
});
56+
57+
// Test case 2
58+
it('should add two negative numbers', function () {
59+
const result = add(-2, -3);
60+
// Use Chai assertions to check the result
61+
assert.equal(result, -5);
62+
});
63+
});
64+
```
65+
66+
In the example above, we're testing the `add` function to ensure it correctly adds two numbers. We describe a test suite using `describe` and define individual test cases with `it`. In each test case, we use Chai's assertions to make specific claims about the function's behavior.
67+
68+
### Running Tests
69+
70+
After writing your tests, you can run them using Mocha. To do this, add a script to your `package.json` file:
71+
72+
```json
73+
{
74+
"scripts": {
75+
"test": "mocha"
76+
}
77+
}
78+
```
79+
80+
Now, you can run your tests with:
81+
82+
```bash
83+
npm test
84+
```
85+
86+
Mocha will discover and run the tests in the `test` directory.
87+
88+
### Conclusion
89+
90+
Unit testing with Mocha and Chai is a crucial practice for ensuring the correctness of your code. Writing tests helps catch bugs early and maintain the reliability of your codebase as it evolves. As you become more comfortable with Mocha and Chai, you can write comprehensive test suites to validate the behavior of your functions and modules.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /