Tôi vừa viết một số mã mẫu đơn giản để đảm bảo rằng tôi đã cài đặt EclEmma đúng cách. Tôi không được bảo hiểm 100%, và tôi không hiểu tại sao. Điểm nổi bật ngụ ý rằng nó phải làm với tên lớp. Dưới đây là mã của tôi, với các bài kiểm tra JUnit tương ứng, cách EclEmma nhấn mạnh nó:Mã có thể được bao phủ đầy đủ có xếp hạng bảo hiểm EclEmma dưới 100% không?
Kết quả bảo hiểm cho thấy ba hướng dẫn trong Arithmetic
không nhận được hit, mặc dù cả hai phương pháp thực tế dường như được hoàn toàn bao phủ:
tôi đã đọc the EclEmma documentation about basic block coverage, nhưng tôi vẫn còn bối rối. Tôi không chắc chắn những khối cơ bản nào đang bị bỏ qua. Lúc đầu, tôi nghĩ EclEmma chỉ có thể bỏ qua bytecode cho các lớp học, nhưng ArithmeticTest
dường như được xử lý tốt.
Tôi đã hai câu hỏi liên quan chặt chẽ:
- Điều này cho thấy một vấn đề với cách tôi cài đặt/cấu hình EclEmma?
- Có bình thường/chấp nhận được đối với mã được bao phủ đầy đủ để có xếp hạng bảo hiểm EMMA cao nhưng không hoàn toàn 100% không và nếu có, thì cách này hoạt động như thế nào?
Thực ra, nó có một "khối văn bản", nó chỉ trống. Trong bytecode, hàm tạo mặc định là có, tại dòng được đánh dấu bằng màu đỏ bởi EclEmma. Để trang trải nó và nó xuất hiện trong màu xanh lá cây, một bài kiểm tra chỉ cần gọi hàm tạo: 'new Arithmetic()'. Tất nhiên, điều chính xác ở đây sẽ là khai báo một hàm tạo mặc định 'private' trong lớp. –