jest unit testing code example
Example 1: what is jest
Jest is a JavaScript testing framework maintained by Facebook, Inc. with a
focus on simplicity.
It works with projects using: Babel, TypeScript, Node.js, React, Angular and
Vue.js.
It aims to work out of the box and config free.
Example 2: testing with jest
npm i jest --save -dev
-> In Package.json change the Script object(watchAll - jest will run auto)
"test" : "jest --watchAll"
-> test file should be named such way that re used by jest can recognize it
like filename. or or skip it.js
Ex: sum.test.js or sum.spec.js or sum.js
-> require the target for testing file in this test file then enjoy testing.
-> visit jestWebsite-> Docs.
Example 3: jest
const sum = require('./sum');
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
Copy
Example 4: jest
beforeAll(() => console.log('1 - beforeAll'));
afterAll(() => console.log('1 - afterAll'));
beforeEach(() => console.log('1 - beforeEach'));
afterEach(() => console.log('1 - afterEach'));
test('', () => console.log('1 - test'));
describe('Scoped / Nested block', () => {
beforeAll(() => console.log('2 - beforeAll'));
afterAll(() => console.log('2 - afterAll'));
beforeEach(() => console.log('2 - beforeEach'));
afterEach(() => console.log('2 - afterEach'));
test('', () => console.log('2 - test'));
});
// 1 - beforeAll
// 1 - beforeEach
// 1 - test
// 1 - afterEach
// 2 - beforeAll
// 1 - beforeEach
// 2 - beforeEach
// 2 - test
// 2 - afterEach
// 1 - afterEach
// 2 - afterAll
// 1 - afterAll
Copy
Example 5: jest
function sum(a, b) {
return a + b;
}
module.exports = sum;
Copied
Example 6: write unit test jest first before json function
const axios = require('axios');
const Users = require('./users');
jest.mock('axios');
test('should fetch users', () => {
const users = [{
"id": 1,
"first_name": "Robert",
"last_name": "Schwartz",
"email": "[email protected]"
}, {
"id": 2,
"first_name": "Lucy",
"last_name": "Ballmer",
"email": "[email protected]"
}];
const resp = { data : users };
axios.get.mockImplementation(() => Promise.resolve(resp));
Users.all().then(resp => expect(resp.data).toEqual(users));
});