我有一个处理图像的方法。该方法采用一个图像,对其执行一些操作并返回另一个图像:
public BufferedImage manipulateImage (Image image) {
...
}
我不确定是否有针对此类活动编写单元测试的最佳实践。应该首先检查图像的哪些特征?如何检查图像是否没有损坏?例如,一旦我在使用ImageIO
读取GIF图像并保存回来时,GIF图像变为颜色反转时遇到问题。
答案 0 :(得分:5)
获取原始图片(x
),运行转换并保存操作图像(y
),亲自检查y
是否是您要测试的内容。您的测试是F(x) = y
,如果x
目录中同时包含y
和src/test/resources
,则可以将y
与测试结果进行比较。< / p>
如果你不需要测试100%的相等性,你可能也对http://pdiff.sourceforge.net/(C ++而不是Java)感兴趣。
修改:也会看到此问题 - Image comparison - fast algorithm