Tôi sẽ sử dụng từ khóa Java assert
trong chính phương pháp để mã hóa điều kiện sau.
Kiểm tra đơn vị hoặc Postcondition?
Kiểm tra đơn vị và postconditions phục vụ các mục đích khác nhau.
Xác nhận trong thử nghiệm đơn vị cung cấp một kiểm tra về kết quả của phương thức cho một vector nhập. Đó là một oracle xác định kết quả mong đợi cho một trường hợp cụ thể.
An assert
trong phương pháp chính nó xác minh rằng lưu giữ sau điều kiện. Nó là một oracle xác định (tài sản của) kết quả mong đợi cho tất cả các trường hợp có thể. Như một điều kiện tiên quyết như một oracle kết hợp tốt với các kỹ thuật kiểm tra tự động, trong đó nó rất dễ dàng để tạo ra đầu vào, nhưng khó để tạo ra giá trị kỳ vọng cho mỗi đầu vào.
Điều kiện hậu duệ?
Vì sao Guava có lớp Điều kiện tiên quyết, nhưng không có lớp Postcondition, đây là sự hiểu biết của tôi.
Điều kiện tiên quyết hiệu quả cung cấp một số viết tắt cho các tình huống phổ biến mà bạn muốn ném một loại ngoại lệ cụ thể (đối số bất hợp pháp, con trỏ rỗng, chỉ mục ngoài giới hạn, trạng thái bất hợp pháp) dựa trên đầu vào của phương thức hoặc trạng thái của đối tượng.
Đối với postconditions, có ít trường hợp phổ biến hơn như vậy. Do đó có ít cần phải cung cấp một cách viết tắt ném các loại ngoại lệ cụ thể. Một postcondition không giống như một HTTP 500 "Internal Server Error" - tất cả chúng ta biết một cái gì đó đã đi sai thực hiện phương pháp của chúng tôi.
(Lưu ý rằng khái niệm điều kiện tiên quyết của Guava hoàn toàn khác với điều kiện tinh khiết của design-by-contract, trong đó không có đảm bảo nếu điều kiện tiên quyết không được đáp ứng - thậm chí không có ngoại lệ hợp lý. khả năng làm cho API công khai bảo vệ hơn).
sử dụng kiểm tra đơn vị hoặc câu lệnh 'assert' của Java – Cephalopod