Каков наилучший способ модульного тестирования кода, генерирующего изображения? Скажем, например, класс, который генерирует график или диаграмму?
Вопрос
Каков наилучший способ модульного тестирования кода, генерирующего изображения?
- На самом деле любой, но смотрите ответ применительно к python/matplotlib. epoch 15.08.2010
Ответы
Ответ 1 · рейтинг 4 · Manoj Govindan
Если этот класс использует стороннюю библиотеку для создания графиков/диаграмм (скажем, matplotlib), вы можете написать тесты для методы, которые генерируют входные данные для библиотеки. Это будет довольно легко.
Если вывод представляет собой изображение, и вы заинтересованы в проверке его свойств, вам придется копать глубже. Внешние атрибуты изображения (размер, высота, формат и т. д.) можно легко проверить, но другие, такие как фактическое содержимое изображения, было бы довольно сложно проверить. ИМХО, не стоило бы заморачиваться.
Если выходные данные не являются двоичными (скажем, SVG), вы можете легко написать тесты, чтобы убедиться, что выходной XML содержит то, что вы ищете.
Ответ 2 · рейтинг 4 · devstuff
Метод, который я использовал, состоит в том, чтобы сгенерировать "заведомо исправный" файл, сохранить его в вашем исходном дереве, а затем выполнить двоичное сравнение с ним как часть теста. Если содержимое файла совпадает, вывод не изменился.
Это не позволяет протестировать все возможные комбинации входных данных, которые будут генерировать изображение, но полезно для базовых регрессионных тестов.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Исключение, запрашивающее контекст Mocked Entity Framework
- XUnit в Visual Studio 2015 RC1 Update 1 не находит тесты
- Как я могу ввести консоль модульного тестирования в scala?
- Сбой `spec.opts` из конфигурации Rspec в приложении rails 2.3.18
- Выберите конкретную ссылку по href с помощью webrat
- Как справиться с проблемами, когда невозможно установить соединения (ни с БД, ни с внешними системами), когда