การใช้ Jest พื้นฐานกับ Nodejs

Mine ArithmeticOp
2 min readFeb 8, 2019

--

จุดเริ่มต้นการใช้ jest และการตั้งค่า jest สำหรับ nodejs

เริ่มต้น

  1. สร้างโปรเจค โดย mkdir jest-config และ cd jest-config
  2. init package โดย npm init --yes
  3. npm install --save-dev jest jest-extended
  4. สร้าง directory src มาเพื่อใส่ไฟล์ โดย mkdir src
  5. สร้างไฟล์ jest.config.js เพื่อเอาไว้ config jest โดย touch jest.config.js
  6. เข้าไปใน src และสร้าง directory specs เอาไว้ใส่ไฟล์ test โดย cd src และ mkdir specs
  7. สร้าง file test ขึ้นมาเพื่อทดสอบว่า jest ที่เรา install สามารถ test ได้ โดย cd specs และ touch specs.test.js

เท่านี้เราก็จะได้องค์ประกอบสำหรับเริ่มต้น test เรียบร้อยแล้ว ดังนี้

node_modules
src/specs/specs.test.js
jest.config.js
package-lock.json
package.json

รวม Command 1–7

mkdir jest-config
cd jest-config
npm init --yes
npm install --save-dev jest jest-extended
mkdir src
touch jest.config.js
cd src
mkdir specs
cd specs
touch specs.test.js

ตั้งค่า Jest

  1. ไปที่ไฟล์ package.json โดย nano package.json
ตรง script ให้ทำการเพิ่มเป็น"script": {
"test": "jest"
}

2. ไปที่ไฟล์ jest.config.js ปรับโค้ดเพื่อใช้งาน jest-extended ได้โดย nano jest.config.js

module.exports = {
setupFilesAfterEnv: ["jest-extended"]
}

สามารถดูวิธีการ Config เพิ่มเติมได้ที่นี่

ทดลองใช้งาน Jest

  1. ไปที่ไฟล์ specs.test.js โดย nano specs.test.js
describe('test jest', () => {
test('basic jest', () => {
expect(2).toBeNumber();
});
test('jest extended', () => {
const date = new Date();
expect(date).toBeDate();
});
});

2. คำสั่งใช้งาน test jest คือ

npm test

3. ผลลัพธ์การใช้งาน test คือ

ผลลัพธ์การ test

อธิบายโค้ดใน specs.test.js

describe('test jest', () => {
});
describe เป็นการอธิบายบนสุดว่าเราต้องการทำอะไร
ซึ่งใน describe ข้างต้นก็คือเราต้องการ test jest ว่าใช้งานได้
test('basic jest', () => {
expect(2).toBeNumber();
});
test('jest extended', () => {
const date = new Date();
expect(date).toBeDate();
});
test เป็นการบอกว่าเราต้องการ test อะไร
ซึ่งในที่นี้คือ test basic jest และ jest extended
เพื่อดูว่าฟังก์ชันทั้ง basic และ extended สามารถใช้งานได้
โดยส่วน basic เราใช้ toBeNumber() เพื่อ test
และส่วน extended เราใช้ toBeDate() เพื่อ test

สามารถดูฟังก์ชันเพิ่มเติมของ basic jest ได้ที่นี่

และสามารถดูฟังก์ชันเพิ่มเติมของ jest-extended ได้ที่นี่

NEXPIE เรารับ Backend Engineering อยู่นะครับ สามารถส่ง Profile มาได้ที่นี่

--

--