使用JUnit测试图形生成

PeW*_*eWu 8 java junit graphics2d

我正在使用Java的Graphics2D来生成图形的图形表示.我也在使用ImageIO来编写PNG文件.(ImageIO.write(image, "png", out);)

我想知道如何编写JUnit测试来测试生成的图形是否符合预期.我可以预先生成PNG文件,但如果在不同的机器上字体有点不同怎么办?

mik*_*era 1

您可以尝试测试输出的特定已知功能,例如:

  • (100,100)处有一个白色像素吗?
  • 边框全黑吗?
  • 图像的尺寸是预期的吗?

和/或者您可以为某些“聚合属性”编写测试,以允许结果中存在一些模糊性:

  • 图像与参考图像至少有 90% 匹配吗?(允许不同的字体、抗锯齿差异等)
  • 图像中最常见的颜色是否等于背景颜色?