jest là gì

Nội dung bài xích viết

Video học tập lập trình sẵn từng ngày

Để nắm vững định nghĩa Unit test là gì? Thiết nghĩ về chúng ta nên coi bên trên nội dung bài viết này. khích lệ nên phát âm, vì như thế coi sở hữu quan trọng với dự án công trình của người sử dụng hoặc không? Chứ rơi rụng thời hạn ghi chép testing nhưng mà không tồn tại thành phẩm gì. Unit test ko giản dị là mò mẫm đi ra lỗi nhanh chóng rộng lớn mà còn phải thật nhiều nhằm nói đến việc vô nội dung bài viết cụ thể.

Bạn đang xem: jest là gì

Unit test NodeJS rất giản đơn ghi chép và hoàn toàn có thể được thực thi đua nhưng mà đa số ko cần thiết thông số kỹ thuật gì cả chỉ việc install package là ok, vì như thế bọn chúng thông thường được tiến hành chỉ vày một mệnh lệnh gọi function. Hình như, cũng đơn giản và dễ dàng nhằm tích lũy tài liệu test và hiển thị thành phẩm kể từ những mệnh lệnh kiểm tra của tôi.

Có điều ghi chép làm sao? ghi chép mang đến mặt mũi nào? và đánh giá thế nào mang đến phải chăng. Nếu ko ghi chép làm những gì mang đến tốn cơm trắng tốn của. Trong nội dung bài viết này tiếp tục vấn đáp ko tuyệt vời, tuy nhiên so với tôi là vẫn đầy đủ mang đến chúng ta dùng. Nhất là kiểm tra API.

Jest là gì?

Có thật nhiều package nhằm tiến hành Unit test NodeJS thì ko cần là không nhiều ví dụ như các cựu binh sĩ Mocha và Jasmine đã trải mưa thực hiện dông tố bên trên thị ngôi trường bao nhiêu trong năm này. Nhưng những đứa trẻ em Jest và Ava đang được trỗi dậy uy lực và dường như như đang được thu hẹp dần dần khoảng cách, chủ yếu vì như thế sự giản dị nhưng mà hiệu suất cao. Bài ghi chép này tiếp tục chỉ dẫn về jest.

Jest là 1 trong trình chạy test nghiệm JavaScript, nghĩa là 1 trong tủ sách javascript muốn tạo, và nhằm đánh giá những thục tục hoặc hàm vô js. Jest là 1 trong package đã có sẵn vô NPM, chúng ta cũng có thể setup nó vô ngẫu nhiên dự án công trình JavaScript nào là. Jest là 1 trong trong mỗi trình chạy test nghiệm thông dụng nhất lúc bấy giờ và đang được là lựa lựa chọn khoác lăm le cho những dự án công trình React. Để hiểu thêm cụ thể contact chủ yếu công ty jest.

Ngoài đi ra hoàn toàn có thể các bạn chỉ nghe cho tới Unit ko nghe cho tới 2 định nghĩa TDD và BDD. Vậy thì tôi tranh giành thủ trình bày qua chuyện luôn luôn mang đến nhưng mà bắt.

TDD và BDD là gì?

TDD (Test Driven Development) là 1 trong tiến độ ghi chép mã kiểm test trước rồi tiếp sau đó mới nhất tê liệt mới nhất ghi chép mã logic. Hiểu nôm mãng cầu là ghi chép tiến độ kiến thiết khối hệ thống trước tiếp sau đó mới nhất tiến hành code.

Còn về BDD là gì?

BDD(Behavior Driven Development) trình bày một cơ hội giản dị là hiểu ngược lại với TDD này đó là ghi chép mã logic nhiệm vụ trước, tiếp sau đó mới nhất ghi chép mã kiểm test. Tóm lại là ghi chép hoàn thành mới nhất ghi chép test. Vậy thôi. Đây là cơ hội hiểu của những người ghi chép.

Thực hành Unit test với Jest

Giả sử còn nếu như không dùng Jest thì công ty chúng tôi sở hữu ghi chép công tác kiểm test được không? Xin thưa là được. Chúng tôi quen thuộc với gian truân rồi. Ví dụ công ty chúng tôi thể hiện một ví dụ sau:

export function findMax (arr) {
    return Math.max(...arr)
}

Trên tề là 1 trong hàm kiểm tra coi độ quý hiếm lớn số 1 vô array là bao nhiêu? Đơn giản cần không? Chúng tôi tiếp tục ghi chép nhị hàm, một là test nhị là expect. Như sau:

// expect
function expect (value) {
    return {
        toBe: (toBeValue) => {
            if (toBeValue === value) {
                console.log('Pass!')
            } else {
                throw new Error('Error!')
            }
        }
    }
}

// test
function test (msg, func) {
    try {
        func()
        console.log(`${msg} ket thuc kiem thu`)
    } catch (err) {
        console.error(`${msg} Tra lai ket qua chuyện loi`)
    }
}

Giờ chạy test việc code bằng tay thủ công coi sao?

test('findMax', () => {
    expect(findMax([1, 2, 4, 3])).toBe(4) // pass hoặc không?
})
//Kết trái khoáy ok nhé:
AnonyStick$ node phầm mềm.js 
Pass!
findMax ket thuc kiem thu

Giờ tao test nghiệm với jest coi làm sao? trước hết install jest:

Xem thêm: Bí kíp đánh bài cào không bao giờ thua từ cao thủ Go88

$ npm install --save-dev jest

Notes: --save-dev chạy mang đến việc kiểm test, còn --save được dùng nhằm setup package quan trọng nhằm Lúc phần mềm chạy.

Bước loại thân phụ là chạy mệnh lệnh npx jest --init muốn tạo tệp thông số kỹ thuật jest là jest.config.js. Các lựa lựa chọn của tôi như sau: install jest npm


sau Lúc hoàn thiện nhìn vô tệp tin package.json sở hữu chưa?
"scripts": {
    "test": "jest"
},

Giờ thực hành thực tế tạo ra 2 tệp tin basic.jsbasic.test.js vô thư mục src:

basic.js: Để ghi chép code logic, như sau:

// Tìm số lớn số 1 vô array mang đến trước
const findMax =  (arr) => {
    return Math.max(...arr)
}

basic.test.js: Để ghi chép unit test như sau:

const { findMax } = require('./basic')

test('findMax([2, 8, 3])', () => {
    expect(findMax([2, 8, 3])).toBe(8);
})

Kết trái khoáy pass, coi hình hình họa bên dưới đây:

unit test nodejs with jest


Ta thấy array [2, 8, 3] sở hữu số lớn số 1 là 8. toBe(8) thay mặt đại diện mang đến thành phẩm xuất đi ra coi sở hữu khớp với hàm kiểm tra hoặc không? Nhưng những gì các bạn thấy ở ví dụ bên trên đơn giản cơ bạn dạng thôi. Tôi hoặc thao tác với API thì tôi sé thực hiện thế nào là đây? Xem tiếp

Thực hành nâng lên với jest

Ví dụ bạn thích kiểm tra coi api của người sử dụng ghi chép sở hữu sinh hoạt như bạn muốn hay là không thì chúng ta cũng có thể dùng jest nhằm kiểm tra một cơ hội hiệu suất cao trước lúc trả mang đến bọn APP chạy. Xem code hiểu rộng lớn.

request.js

Xem thêm: đằng trước tiếng anh là gì

const axios = require('axios');

module.exports = {
    request: () => {
        return axios.get('https://jsonplaceholder.typicode.com/todos/1')
    }
}

request.test.js nếu như dùng promise

const {request} =require('./request');

test('id=1request', async () => {
    return request().then(data => {
        // su dung promise

        expect(data.data).toEqual({
            "userId": 1,
            "id": 1,
            "title": "delectus aut autem",
            "completed": false
        })
    })
})

request.test.js nếu như dùng async/await

const {request} =require('./request');

test('id=1request', async () => {
    const res = await request()
    expect(res.data).toEqual({
        "userId": 1,
        "id": 1,
        "title": "delectus aut autem",
        "completed": false
    })
})

Tóm lại

Nhìn vậy thôi chứ thực hiện chút quen thuộc à, với lại coi thêm thắt nhiều matchers như tobe nữa bên trên trang chủ của jest. Khi các bạn thực hiện một phần mềm nhỏ thì có lẽ rằng ghi chép unit test thì dường như tiêu tốn lãng phí thời hạn. Nhưng phần mềm rộng lớn thì ko bay ngoài cảnh này. Riêng về TDD, với BDD thì tôi thông thường xìa BDD thôi. Còn tuỳ nằm trong vô anh người mẹ coi sao nhé. Để hiểu sâu sắc hơn vậy thì nên tìm hiểu thêm nội dung bài viết về Unit test là gì?