Khẳng định trong Java và JavaPathFinder

Một phần của tài liệu Nghiên cứu về kiểm chứng bất biến của đối tượng sử dụng lập trình hướng khía cạnh (Trang 79)

Chúng ta có thể thêm các khẳng định (assertion) được biểu diễn dưới dạng biểu thức lôgic được thỏa mãn tại các vị trí nào đó trong đoạn mã vào một chương trình Java. Một khẳng định là một kiểm thử thành công hay thất bại của một điều kiện được thực hiện khi chương trình đang chạy. Các khẳng định tường minh được thêm vào từ Java 1.4. JPF sẽ kiểm tra tất cả tiến trình đan xen (thread interleaving) đang cố gắng vi phạm các khẳng định và thông báo một vi phạm khẳng định đầu tiên nó gặp phải. Chúng ta có thể hủy bỏ việc kiểm tra các khẳng định bằng tùy chọn “-no-assertions”. Đối với các phiên bản Java nhỏ hơn 1.4 thì có thể dùng phương thức AssertTrue của lớp Verify trong JPF.

Cú pháp của lệnh assert của Java như sau:

assert (<biểu thức khẳng định>) : “<Thông báo>”;

Mục đích lệnh này là để kiểm tra biểu thức lôgic <biểu thức khẳng định> được định giá là đúng tại vị trí lệnh assert được gọi. “<Thông báo>” là tùy chọn và chỉ phục vụ cho mục đính thông báo và sẽ in ra chuỗi thông báo trong trường hợp điều kiện bị vi phạm. Ví dụ một lời gọi cụ thể của lệnh như sau:

assert (balanceAmount>=0) : "ATMcard.balanceAmount<0"

Lệnh này kiểm tra thuộc tính balanceAmount có lớn hơn 0 hay không bằng 0 hay không, nếu không đúng thì JPF sẽ thông báo khẳng định bị vi phạm và thông báo cụ thể vi phạm là “ATMcard.balanceAmount<0”.

Nếu sử dụng phương thức assertTrue của JPF thì cú pháp của nó như sau: Verify.assertTrue(“<Thông báo>”,<biểu thức khẳng định>);

Cũng như lệnh assert ở trên, tham số “<Thông báo>” là tùy chọn. Theo ví dụ trên thì lời gọi sẽ như sau:

Lời gọi này sẽ có kết quả thực hiện y như câu lệnh assert ở trên.

Một phần của tài liệu Nghiên cứu về kiểm chứng bất biến của đối tượng sử dụng lập trình hướng khía cạnh (Trang 79)