我正在从其余端点调用一个外部api。像这样:
private byte[] retrieveImageFromExernalAPI() {
byte[] imageBytes = null;
URL url = new URL("https://cdau:6443/rest/services/targetEndpoint");
BufferedImage bufferedImage = ImageIO.read(url);
imageBytes = convertBufferedImageToByte(bufferedImage, "png");
} catch (IOException e) {
//logger.error(e);
throw new RuntimeException(e);
}
return imageBytes;
}
您可以在上面的代码中看到,我调用了外部API,并收到了Java中的BufferedImage
对象作为响应。然后,我调用方法convertBufferedImageToByte(bufferedImage, "png");
,该方法将BufferedImage
响应转换为图像(byte[]
)。像这样:
private byte[] convertBufferedImageToByte(BufferedImage image, String type) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, type, baos);
byte[] bytes = baos.toByteArray();
return bytes;
}
问题是,我真的不知道该如何测试。我应该使用Mockito模拟外部api还是仅模拟jUnit?我听说过Hoverfly,但仍想了解它在这种情况下的适应情况。
任何帮助将不胜感激!