Assertion là gì?

Noun Programming

Trong lập trình máy tính (computer programming), assertion là một cấu trúc (construct) của ngôn ngữ lập trình (programming language) để kiểm tra xem một biểu thức (expression) có true hay không. Các assertion được viết để chúng luôn được đánh giá (evaluate) là true. Nếu một assertion là false, nó chỉ ra một lỗi có thể xảy ra trong chương trình. Đây được gọi là assertion failure.

Các lập trình viên (programmer) thêm các assertion vào mã nguồn (source code) như một phần của quá trình phát triển. Chúng nhằm mục đích đơn giản hóa việc gỡ lỗi (debug) và giúp tìm ra các lỗi tiềm ẩn dễ dàng hơn. Vì assertion failure thường chỉ ra một lỗi, nhiều triển khai (implementation) của assertion sẽ in thêm thông tin về nguồn gốc của vấn đề (chẳng hạn như tên tập tin và số dòng trong mã nguồn hoặc stack trace). Hầu hết các triển khai cũng sẽ tạm dừng thực thi chương trình ngay lập tức.

Mục đích của một assertion là để xác minh rằng một giả định do người lập trình đưa ra trong quá trình thực hiện chương trình vẫn còn giữ nguyên giá trị khi chương trình được thực thi. Ví dụ: hãy xem xét code Java sau:


int total = countNumberOfUsers();
if (total % 2 == 0)
{
   // total is even
} else
{
   // total is odd
   assert(total % 2 == 1);
}

Trong Java, % là toán tử lấy phần dư (remainder operator), nếu toán hạng (operand) đầu tiên của nó là số âm, thì kết quả cũng có thể là số âm. Ở đây, lập trình viên đã giả định rằng total không âm, do đó phần dư (remainder) của phép chia với 2 sẽ luôn là 0 hoặc 1. Assertion làm cho giả định này rõ ràng - nếu countNumberOfUsers trả về giá trị âm, thì có thể là lỗi trong chương trình.

Learning English Everyday