Một trong những phương pháp tĩnh tôi đang sử dụng, nó có hai điều. Nó trả về một số dữ liệu, nhưng nó cũng sửa đổi đối tượng đối số được truyền cho nó. Đối tượng đối số được cập nhật này sau đó được sử dụng sau trong mã.doAnswer cho các phương pháp tĩnh - PowerMock
Tôi đang sử dụng PowerMock để giả lập hành vi trả lại.
Để xác định phần thứ hai - cập nhật đối số đầu vào, tôi định nghĩa phương thức doAnswer nhưng nó không hoạt động. Phương pháp mà tôi đang cố gắng kiểm tra trông như thế này.
public void login() throws ConnectionException, AsyncApiException {
ConnectorConfig partnerConfig = new ConnectorConfig();
//This call sets the value in one member variable 'serviceEndPoint in ParterConfig which is accessed later in this method only.
partnerConnection = Connector.newConnection(partnerConfig);
//partnerConfig.getServiceEndpoint is called.
PowerMockito.mockStatic(Connector.class);
when(Connector.newConnection(Mockito.any(ConnectorConfig.class))).thenReturn(partnerConnection);
PowerMockito.doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) {
ConnectorConfig config = (ConnectorConfig) invocation.getArguments()[0];
config.setServiceEndpoint("service end point");
return null;
}
}).when(Connector.newConnection(Mockito.any(ConnectorConfig.class)));
}
nhưng ở trên ném lỗi có nội dung 'Phát hiện chưa hoàn thành được phát hiện tại đây'. Connector
là lớp của bên thứ ba nên tôi không có quyền kiểm soát hành vi của mình.
Bất kỳ đề xuất nào, điều gì có thể xảy ra?
thnx cho liên kết doc. Tôi sẽ thử vào ngày mai. – RandomQuestion
Điều này đã hiệu quả. Tôi đã đệ trình một lỗi. Chủ đề không phải là điểm nhưng tôi dường như không thể chỉnh sửa nó. https://code.google.com/p/powermock/issues/detail?id=452&can=4&q=javadoc – RandomQuestion