我正在处理 Java 应用程序的一部分,该应用程序将图像作为字节数组处理,将其读入 java.awt.image.BufferedImage
实例中并将其传递给第三方库进行处理。
为了进行单元测试,我想要获取一张图片(从磁盘上的文件),并断言它与代码处理后的相同的图片是相等的。
- 我的期望
BufferedImage
从磁盘上的 PNG 文件使用ImageIO.read(URL)
读取。 - 我的测试代码将相同的文件读入到
BufferedImage
中,并将其作为 PNG 写入字节数组,以提供给待测试系统。
当待测试系统将字节数组写入新的 BufferedImage
时,我希望断言这两个图像在有意义的方式上是相等的。使用 equals()
方法(从 Object
继承而来)不能很好地工作。比较 BufferedImage.toString()
值也不行,因为输出的字符串包括对象引用信息。
有人知道任何快捷方法吗?我不想在一个大型应用程序的小部分中为单个单元测试带来第三方库。
.equals()
不能起作用吗? - Alexis KingBufferedImage
没有重写Object#equals()
方法。http://www.docjar.com/html/api/java/awt/image/BufferedImage.java.html - Matt Ball