Tôi đã nhận một lớp bằng cách sử dụng một nhà máy để tạo một số đối tượng. Trong thử nghiệm đơn vị của tôi, tôi muốn truy cập giá trị trả lại của nhà máy. Vì nhà máy được chuyển trực tiếp đến lớp và không có getter cho đối tượng đã tạo được cung cấp, tôi cần phải chặn trả lại đối tượng từ nhà máy.Mockito + Spy: Cách thu thập các giá trị trả về
RealFactory factory = new RealFactory();
RealFactory spy = spy(factory);
TestedClass testedClass = new TestedClass(factory);
// At this point I would like to get a reference to the object created
// and returned by the factory.
Có khả năng truy cập giá trị trả lại của nhà máy không? Có lẽ sử dụng gián điệp?
Cách duy nhất tôi có thể thấy là để thử nhà máy tạo ra phương pháp ...
Trân
Tại sao nên 'TestedClass' mất trong nhà máy là phụ thuộc. Không phải nó chỉ yêu cầu lớp thực tế được tạo ra bởi nhà máy. ? (Luật Demeter) –
'TestedClass' là một thành phần OSGi. Một phương thức của thành phần yêu cầu mỗi lời gọi một đối tượng mới được tạo bởi nhà máy. Tôi đã tái cấu trúc đối tượng sáng tạo ra thành một lớp nhà máy để cung cấp khả năng kiểm tra tốt hơn. Vì đối tượng đã tạo được khởi tạo tùy thuộc vào các tham số của phương thức, nên không có cách nào để truyền vào đối tượng đã tạo thay vì nhà máy. –