Tiếp theo Phần 2:Unit test ở Front kết thúc với Karma của loạt nội dung bài viết về Front End,trong phần này bản thân sẽ trình làng đến các bạn Phần 3:Code coverage cùng với Istanbul.Bạn vẫn xem: Code coverage là gì

Bạn vẫn xem: Code coverage là gì

Trong phần trước bọn họ đã thì thầm về Unit Test, những khái niệm, kinh nghiệm tay nghề và cách thiết đặt để chạy Unit Test. Tuy nhiên làm sao chúng ta biết được UT của họ viết ra đã chiếm hữu tiêu chuẩn chỉnh chưa? UT đã che phủ hết đông đảo trường hợp cần thiết chưa? có tác dụng sao những trưởng nhóm, trưởng dự án biết bạn đã viết xuất sắc hay không? ... Và khôn cùng nhiều câu hỏi khác.

Bạn coi hình sau:




Bạn đang xem: Code coverage là gì

*

Ở dòng thứ nhất của report này là kết quả cho tất cả package ai đang chọn:


*

Ở các dòng tiếp sau là hiệu quả cho từng file/class đã được test:

Ý nghĩa màu report:

Xanh lá cây: nghĩa là thông số kỹ thuật được report đạt tiêu chuẩn chỉnh đặt raVàng: nghĩa là thông số kỹ thuật được report không được giỏi lắm, yêu cầu chú ýĐỏ: cực tốt bạn đi fix đi, nó là FAILED

Ý nghĩa các con số:

Statements 62.5% - 10/16: tức là trong class được test có 16 câu lệnh tuy vậy chỉ tất cả 10 câu lệnh được test, còn 6 câu lệnh không được code UT chạy quaBranches 38.46% - 5/13: tức thị trong code của công ty có 13 nhánh điều kiện nhưng chi có 5 nhánh được code UT chạy quaFunctions 50% - 1/2:nghĩa là trong code của người sử dụng có 2 functions nhưng mà chi có một function được code UT chạy quaLines 64.29% - 9/14:nghĩa là vào code của công ty có 14 cái lệnh tuy nhiên chỉ gồm 9 mẫu lệnh được code UT chạy qua

Làm sao để tính các con số này từ bỏ source code?

Đây là thắc mắc khó đến dân Dev ^_^, chính vì nó không dễ dàng và đơn giản là quan sát vào những dòng code, điều kiện if else, code block để lấy ra các con số, nó tinh vi hơn chúng ta nghĩ.

Nếu bạn thực sự ao ước biết chi tiết, bạn đọc các tài liệu liên quan đến kỹ thuật testing, kiểm demo nhé. Một vài ba tài liệu bản thân từng đọc:

Report code coverage tốt có nghĩa là quality tốt?

Nếu bạn nhìn vào bảng report trên thì chúng ta nghĩ rằng cứ số lượng 100% là ngon? chưa hẳn như vậy, các bạn xem những ví dụ sau nhé:

Ví dụ 1: Statements vs Lines

// Code chínhexport const getUserInfor = (yearOld, userName) => let output = ; if (yearOld > 18) output.push(`$userName is an adult`); else return "Nothing" return output;// Code testdescribe("Testing Coverage Sample", () => it("Mr. Namx is an adult", () => const yearOld = 20; const userName = "Mr. Namx"; const outputs = getUserInfor(yearOld, userName); expect(outputs).to.include.members(); ););Kết trái chạy UT của ví dụ như này đang là:




Xem thêm: Là Gì? Nghĩa Của Từ Carburetor Là Gì ? Nguyên Lý Hoạt Động Của Bộ Chế Hòa Khí

*

Statements màu Xanh với 88.33% - 5/6 câu lệnh được phủ, tuy nhiên bạn quan sát kỹ rộng ở code UT, các bạn truyền vào quý hiếm yearOld là 20, tức là câu lệnh if chỉ được thực hiện ở về đầu, vế else phía sau chưa được kiểm thử. đề xuất code UT và kết quả này chưa tốt.Lines Xanh lè cùng với 100% - 4/4 mẫu được bao phủ kín. ^_^ chú ý vào hiệu quả này thì gồm câu nói khét tiếng trong nghề Dev "Có Thánh new biết các bạn làm gì", không người nào đủ thời gian để đi gọi từng câu lệnh của doanh nghiệp đã viết để phát chỉ ra là số lượng 100% đó chưa đủ tốt.May gắng trong tác dụng này có thông số Branches 50%, nó sẽ bắt được trường phù hợp này cho chính mình để bạn sửa lại.

Ví dụ 2: 100%

// Code chínhexport const getUserInfor = (yearOld, userName) => let output = ;if (userName.length % 2 === 0) output.push(`$userName is a man`); else output.push(`$userName is a woman`);return output;// Code UTdescribe("Testing Coverage Sample", () => it("Mr. Namx is a man", () => const yearOld = 20; const userName = "Mr. Namx"; const outputs = getUserInfor(yearOld, userName); expect(outputs).to.include.members(); ); it("Mr. Nam is a woman", () => const yearOld = 20; const userName = "Mr. Nam"; const outputs = getUserInfor(yearOld, userName); expect(outputs).to.include.members(); ););Ở lấy một ví dụ này mình chạy 2 demo cases, cùng với độ dài của tên là chẳn và lẻ để phủ kín đáo toàn bộ code chính, report của ví dụ này chắc chắn 100% toàn bộ thông số