是否有针对生成图形的单元测试代码的标准最佳实践?我专门使用 Java 和 jUnit,但我认为这个概念也适用于其他语言。
到目前为止,我能想到的最好的方法是使用 Mockito 模拟 Graphics
对象并断言预先计算好的东西,例如(伪代码):
assert that graphics.drawString was called with ("abc", 50, 100)
assert that graphics.setBackgroundColor was called with Color.RED
虽然一切都很好,但我想知道这是否是正确的方法,或者是否有更多既定的实践来测试图形代码。
最佳答案
我不知道这是否是惯例,但我会考虑 SVGGraphics2D来自 Batik 项目,用于模拟图形,并比较生成的 SVG文件。
比较二进制文件的优势在于 SVG 文件是相对可读的 XML 文件,因此如果两个文件不相等,您不仅知道有问题,而且还可以很好地提示错误的确切位置问题。
与您的解决方案相比的优势在于可以查看这些 SVG 文件(例如在浏览器中),因此测试场景是自记录的。
关于java - 单元测试图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14961412/