Java 使用本地映像测试URI

Java 使用本地映像测试URI,java,spring,junit,Java,Spring,Junit,下面的方法获取指向图像的url并返回输入流: public InputStream getIs(URI uri) { // some implementation... } 为了进行单元测试,我计划使用通过谷歌搜索选择的url:“因此,使用以下方法创建URI: new URI("https://p.bigstockphoto.com/GeFvQkBbSLaMdpKXF1Zv_bigstock-Aerial-View-Of-Blue-Lakes-And--227291596.jpg") 但

下面的方法获取指向图像的url并返回输入流:

public InputStream getIs(URI uri) {
  // some implementation...
}
为了进行单元测试,我计划使用通过谷歌搜索选择的url:“因此,使用以下方法创建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();

为什么您要编写自己的方法来执行此操作,而不是使用几个常用库中的一个?@chrylis onstrike-我正在使用一个遗留代码库。但是,即使我可以使用库方法将URI转换为inputStream,我仍然需要一种机制来测试转换。