Я использую Graphics2D Java для генерации графического представления графика. Я также использую ImageIO для записи файла PNG. (ImageIO.write(image, "png", out);
)
Я задаюсь вопросом, как должен я писать тесты JUnit, чтобы протестировать, является ли сгенерированная графика тем, что ожидается. Я мог предварительно генерировать файлы PNG, но что, если шрифт несколько отличается на другой машине?
Вы можете попробовать протестировать конкретные известные особенности вывода, например:
И / или вы могли бы написать тесты для некоторых «совокупных свойств», которые допускают некоторую нечеткость результатов:
Вы можете считать все значения RGB сгенерированных изображений в массив и сравнить этот 2D-массив с массивом, представляющим предварительно сгенерированное изображение, если вы действительно конкретны в отношении полного изображения.
Если вы хотите игнорировать шрифты, вы можете сделать то же самое для областей изображения, которые не содержат никаких переменных данных, в зависимости от среды, в которой создаются изображения. Создание подпрограмм коррекции и нормализации для модульных тестов было бы пустой тратой времени, если только приложение не должно генерировать изображения с такой высокой точностью, которая требуется.