[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!



Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 1 | 1 | 1
Назад Вниз Каталог Обновить

Юнит тестирование кода средствами Boost.Test и Boost Turtle фреймворка Аноним 28/11/16 Пнд 22:23:32  883890  
TVFilthyFrank.png (1376Кб, 1920x1080)
boost-cpp-progr[...].png (25Кб, 604x270)
Кто юзает юнит тестирование через Boost.Test и Boost Turtle фреймворк? Норм? Нравится? Как вы это делаете? Можете кинуть примеры реального использования в проектах Официальный гайд я читал, мне нужно больше примеров

Просто не знаю как реализовать тесты, где требуется проверить классы, методы класса, которые ничего не возвращают. В проекте используется glut для отрисовки объектов и прочего дерьма с графикой в окно. Как блея проверять бустом что рисуется или не рисуется?
Аноним 28/11/16 Пнд 23:49:11  883962
>>883890 (OP)
>Как блея проверять бустом что рисуется или не рисуется?
О, это извечная боль для разработчиков графических приложений которые что-то рендерят. Как проверить результат отрисовки?

Я когда работал над 3д движком делал вот так:

1) Находишь метод для рендера в текстуру. Не помню уже что за glut (это же вроде какое-то устарелое говно мамонта, или я путаю?), но вообще такой должен быть.

2) Создаешь набор тестовых сцен (хуй знает что у тебя за проект, но в случае с 3д движком набор будет в духе "пара кубиков", "шарик с шейдером", "кубик под лампочкой", "система партиклей" и т.п.)

3) Для каждой сцены рендеришь референсные скриншоты (можно по несколько на сцену, например с разных ракурсов), сохраняешь их.

4) Пишешь тесты в духе "загрузить сцену -> отрендерить в текстуру -> сравнить результат с загруженной с диска референсной картинкой".

Сравнивать очевидно стоит не точным сравнением, а с некоторой дельтой, с учетом возможных небольших несовпадений (в пределах пары пикселов) из-за всяких погрешностей. Я для такого когда-то использовал Perceptual Diff тулзу.

Профит.

Наличие таких тестов впрочем не исключает необходимость в обычных юнит-тестах. Так как несовпадение скриншотов конечно сообщит тебе о проблеме, но ее будет достаточно сложно локализовать.

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

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 1 | 1 | 1
Назад Вверх Каталог Обновить

Топ тредов
Избранное