2015-10-21 26 views
6

Tôi đang chạy thử nghiệm java thuần JUnit4 trên các tệp java thuần túy trong dự án của mình nhưng tôi không thể tìm thấy cách sử dụng @VisibleForTesting rõ ràng mà không làm cho công khai thủ công.Làm thế nào để sử dụng VisibleForTesting cho các thử nghiệm JUnit thuần túy

Ex:

@VisibleForTesting 
public Address getAddress() { 
    return mAddress; 
} 

Phương pháp này đã được public để cho nó được "công cộng" để kiểm tra, nhưng trong trường hợp đó các chú thích không có ý nghĩa phải không? tại sao không chỉ sử dụng bình luận nếu chú thích sẽ không làm gì cả?

Trả lời

18

Đặt phương thức riêng tư thành gói và thử nghiệm sẽ có thể xem nó, nếu thử nghiệm nằm trong gói thử nghiệm tương ứng (cùng tên gói với mã sản xuất).

@VisibleForTesting 
Address getAddress() { 
    return mAddress; 
} 

Cũng xem xét refactoring mã của bạn, do đó bạn không cần phải kiểm tra một cách rõ ràng một phương pháp riêng, hãy thử kiểm tra hành vi của một giao diện công cộng. Mã khó kiểm tra có thể là dấu hiệu cho thấy các cải tiến có thể được thực hiện đối với mã sản xuất.

Điểm chú thích là quy ước của nó và có thể được sử dụng trong phân tích mã tĩnh, trong khi nhận xét thì không.

Các vấn đề liên quan