Sau khi đọc: https://code.google.com/p/powermock/wiki/BypassEncapsulation tôi nhận ra, tôi không hiểu.Truy cập PowerMock thành viên riêng
Xem trong ví dụ này:
public class Bar{
private Foo foo;
public void initFoo(){
foo = new Foo();
}
}
Làm thế nào tôi có thể truy cập vào các thành viên tin foo
bằng cách sử dụng PowerMock (Ví dụ để xác minh rằng foo
không phải là null)?
Lưu ý:
gì tôi không muốn được sửa đổi mã với phụ get
phương pháp.
Chỉnh sửa:
Tôi nhận ra rằng tôi đã bỏ lỡ một khối mã mẫu trên trang được liên kết với giải pháp.
Giải pháp:
Whitebox.getInternalState(bar, "foo");
Tôi khuyên bạn nên suy nghĩ cẩn thận trước khi viết loại thử nghiệm này, các đối số chống lại việc kiểm tra giá trị của biến riêng được tóm tắt tại đây: https://stackoverflow.com/questions/2981476/does-jmockit-have-any-drawbacks-at- Tất cả/7499979 # 7499979 – codebox
Bài kiểm tra thực tế phức tạp hơn một chút và liên quan đến ngủ đông, phiên và phiên làm việc, tôi cố gắng kiểm tra dbInterface của chúng tôi mà không phải khởi tạo công cụ ngủ đông hoàn chỉnh. Trong hầu hết các phương thức, chúng ta sửa đổi trạng thái đối tượng và không có chức năng đầu vào/đầu ra thực. – Gobliins