Je travaille sur une partie d'une application Java qui prend une image sous la forme d'un tableau d'octets, la lit dans un fichier de type java.awt.image.BufferedImage
et la transmet à une bibliothèque tierce pour traitement.
Pour un test unitaire, je veux prendre une image (d'un fichier sur disque) et affirmer qu'elle est égale à la même image qui a été traitée par le code.
- Mon attendu
BufferedImage
est lu à partir d'un fichier PNG sur le disque en utilisantImageIO.read(URL)
. - Mon test lit le même fichier dans un fichier
BufferedImage
et l'écrit dans un tableau d'octets en PNG pour le fournir au système testé.
Lorsque le système testé écrit le tableau d'octets dans un nouveau fichier BufferedImage
Je veux affirmer que les deux images sont égales d'une manière significative. En utilisant equals()
(hérité de Object
) ne fonctionne pas (bien sûr). Comparaison de BufferedImage.toString()
ne fonctionne pas non plus car la chaîne de sortie comprend des informations sur les références d'objets.
Quelqu'un connaît-il des raccourcis ? Je préférerais ne pas faire appel à une bibliothèque tierce pour un seul test unitaire dans une petite partie d'une grande application.