Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Каков наилучший способ модульного тестирования кода, генерирующего изображения?

Автор вопроса: epochОтветов: 2

Каков наилучший способ модульного тестирования кода, генерирующего изображения? Скажем, например, класс, который генерирует график или диаграмму?

  • На самом деле любой, но смотрите ответ применительно к python/matplotlib. epoch 15.08.2010

unit-testingintegration-testingtesting

Ответы

Ответ 1 · рейтинг 4 · Manoj Govindan

Если этот класс использует стороннюю библиотеку для создания графиков/диаграмм (скажем, matplotlib), вы можете написать тесты для методы, которые генерируют входные данные для библиотеки. Это будет довольно легко.

Если вывод представляет собой изображение, и вы заинтересованы в проверке его свойств, вам придется копать глубже. Внешние атрибуты изображения (размер, высота, формат и т. д.) можно легко проверить, но другие, такие как фактическое содержимое изображения, было бы довольно сложно проверить. ИМХО, не стоило бы заморачиваться.

Если выходные данные не являются двоичными (скажем, SVG), вы можете легко написать тесты, чтобы убедиться, что выходной XML содержит то, что вы ищете.

Ответ 2 · рейтинг 4 · devstuff

Метод, который я использовал, состоит в том, чтобы сгенерировать "заведомо исправный" файл, сохранить его в вашем исходном дереве, а затем выполнить двоичное сравнение с ним как часть теста. Если содержимое файла совпадает, вывод не изменился.

Это не позволяет протестировать все возможные комбинации входных данных, которые будут генерировать изображение, но полезно для базовых регрессионных тестов.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы