下面的方法采用指向图像的 url 并返回输入流:
public InputStream getIs(URI uri) {
// some implementation...
}
为了对此进行单元测试,我计划使用通过 Google 搜索选择的网址:https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg "因此创建一个 URI 使用:
new URI("https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg")
但这似乎是不好的做法。 我应该将图像添加到 Maven
项目的 test/resources
文件夹中并从那里读取图像吗? 如果我这样做,那么 URI不再有效,因为
new URI("classpath:testimage.jpg")
抛出异常:
org.springframework.web.client.ResourceAccessException:
I/O error on GET request for "classpath:testimage.jpg":
URI does not specify a valid host name: classpath:testimage.jpg;
nested exception is org.apache.http.client.ClientProtocolException:
URI does not specify a valid host name: classpath:testimage.jpg
最佳答案
是的,单元测试的最佳实践是使用资源文件。
尝试使用此解决方案为您的 getIs()
方法提供正确的 URI
值:
URL res = getClass().getClassLoader().getResource("image.jpg");
URI uri = res.toURI();
关于java - 使用本地镜像测试 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59596085/