Pertama kita inisialisasi projek dulu dengan perintah npm init --y
.
Inisialisasi jest
Selanjutnya kita install jest dengan perintah npm i jest @types/jest -D
. Lalu pada file package.json kita ubah script test dan tambahkan konfigurasi jest.
"scripts": {
"test": "jest"
},
"jest": {
"verbose": true
},
Melakukan testing
Selanjutnya kita lakukan testing. Kita buat dahulu kode yang akan kita test. Buat file baru src/sum.js
. Berikut isi filenya.
exports.sum = (a, b) => a + b;
exports.sumAll = (array) => {
const result = array.reduce((a, b) => a + b, 0);
return result;
};
Kemudian kita tulis kode test-nya. Buat file baru test/sum.test.js
. Nama file harus berakhiran .test.js.
const { sum, sumAll } = require('../src/sum');
test('should 20', () => {
const result = sum(10, 10);
expect(result).toBe(20);
});
test('should 30', () => {
const result = sumAll([10, 10, 10]);
expect(result).toBe(30);
});
Ada banyak matcher [doc] yang bisa kita gunakan, kali ini kita gunakan matcher toBe.
Menjalankan testing
Oke kemudian sudah bisa kita jalankan testnya. Bisa kita jalankan dengan perintah npx jest
atau npm test
.
It function
Kita juga bisa menggunakan fungsi it daripada fungsi test agar lebih enak dibaca.
const { sum, sumAll } = require('../src/sum');
it('should 20', () => {
const result = sum(10, 10);
expect(result).toBe(20);
});
it('should 30', () => {
const result = sumAll([10, 10, 10]);
expect(result).toBe(30);
});
Coverage
Coverage [doc] berfungsi untuk mengetahui seberapa banyak bagian kode kita yang sudah tercover testing-nya. Pada konfigurasi jest di package.json tambahkan beberapa konfigurasi sehingga kodenya
"jest": {
"verbose": true,
"collectCoverage": true,
"coverageThreshold": {
"global": {
"branches": 80,
"functions": 80,
"lines": 80,
"statements": 80
}
}
},
Hasil coveragenya bisa dilihat di coverage/lcov-report/index.html
.
Express
Untuk melakukan testing dengan jest pada express kita harus install library tambahan npm i supertest -D
.
Buat file baru src/index.js
.
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello world');
});
module.exports = app;
Kita buat code testnya
const request = require('supertest');
const app = require('../src/index');
it('should Hello world', async () => {
const response = await request(app).get('/');
expect(response.text).toBe('Hello world');
});
Kita jalankan lagi testnya npm test
Menggunakan jest bersama eslint
Jika kita menginstall eslint pada projek ini maka akan muncul error pada file test. Untuk mengatasi hal ini kita butuh library tambahan. Kita install librarynya npm i eslint-plugin-jest -D
.
Setelah diinstall ubah file .eslintrc.json
{
"env": {
"commonjs": true,
"es2021": true,
"node": true,
"jest/globals": true
},
"extends": "airbnb-base",
"parserOptions": {
"ecmaVersion": "latest"
},
"rules": {
"no-console": "off",
"linebreak-style": "off"
},
"plugins": ["jest"]
}
Oke. Itu saja, tutorial kali ini. Sekian terima kasih.
Top comments (0)