2010-09-10 7 views
7

Ich habe eine Methode, die sich mit einem Bild beschäftigt. Das Verfahren nimmt ein Bild, führt einige Manipulationen über sie und gibt ein anderes Bild:Java: Unit Test Bildmanipulationen

public BufferedImage manipulateImage (Image image) { 
    ... 
} 

Ich bin nicht sicher, ob es irgendwelche besten Praktiken des Schreibens Unit-Tests für solche Aktivitäten. Welche Eigenschaften des Bildes sollten an erster Stelle geprüft werden? Wie überprüfe ich, ob das Bild nicht verdorben wurde? Zum Beispiel, als ich ein Problem hatte, als GIF-Bilder nach dem Lesen mit ImageIO und dem Zurückspeichern farbinvertiert wurden.

Antwort

5

Holen Sie sich Ihr Originalbild (x), führen Sie die Transformation und speichern Sie das manipulierte Bild (y), überprüfen Sie selbst, dass y ist, was Sie testen möchten. Ihr Test ist dann das F(x) = y, wenn Sie sowohl x als auch y in Ihrem Verzeichnis src/test/resources haben, können Sie y mit dem Ausgang Ihres Tests vergleichen.

Sie könnten auch interessiert sein an http://pdiff.sourceforge.net/ (C++ nicht Java) sollten Sie nicht für 100% Gleichheit testen müssen.

bearbeiten: siehe auch diese Frage - Image comparison - fast algorithm

+0

1 - sehr nützliche Hinweise –