我有一个处理图像的方法。该方法获取一张图像,对其执行一些操作并返回另一张图像:
public BufferedImage manipulateImage (Image image) {
...
}
我不确定是否有为此类 Activity 编写单元测试的最佳实践。首先应该检查图像的哪些特征?如何检查图像是否未损坏?例如,有一次我遇到 GIF 图像在使用 ImageIO
读取并保存回来后颜色反转的问题。
最佳答案
获取原始图像 (x
),运行转换并保存处理后的图像 (y
),亲自检查 y
是你想测试什么。如果你的 src/test/resources 中同时有
目录,您可以将 x
和 y
,那么你的测试就是 F(x) = y
y
与您的测试输出进行比较。
您可能还对 http://pdiff.sourceforge.net/ 感兴趣(C++ 而不是 Java)如果您不需要测试 100% 相等性。
编辑:也看到这个问题 - Image comparison - fast algorithm
关于Java:单元测试图像操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3685911/