调用外部api时如何测试图像?

时间:2019-01-07 02:50:51

标签: java testing junit mockito hoverfly

我正在从其余端点调用一个外部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,但仍想了解它在这种情况下的适应情况。

任何帮助将不胜感激!

0 个答案:

没有答案