我有一个将图像和视频转换为其他格式的类。许多选项可用,例如大小、缩放模式、背景颜色等(想想 ImageMagick 的 convert
命令)。关于如何测试它的任何想法?执行所有选项的代码并不难写,但我不确定如何确认结果是否有效,尤其是对于视频。
一个想法是通过 identify 或 mediainfo 运行生成的文件,看看结果是否符合我的预期。这不适用于大小合适的图像等,但看起来完全错误。
另一个想法是手动确认生成的文件一次,保存这些文件,然后在每次运行测试时将它们与新转换的文件进行比较。这样做的缺点是需要 #inputs x #options
输出文件,这可能会变得很大,尤其是视频。
这是徒劳的事还是有合理的方法来完成这件事?
最佳答案
对于图像,您可以计算一些简单的指标(颜色直方图、边缘直方图等)并验证它们在转换前后是否相同(在一定公差范围内)。
对于视频,您可以对以一定间隔采样的帧执行相同的操作。当然,这不是一个完美的保证,但它在实践中应该会很好地工作。
当然,您必须选择对转换过程产生的变化类型不变的指标,或者考虑比较函数中的预期变化。
关于unit-testing - 测试图像/视频转换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3226942/