Метод покрытия QTest - PullRequest
0 голосов
/ 22 мая 2019

У меня есть пользовательские QWidgets, где все рисование выполняется вручную (fillRect, drawRect, drawText, drawPixmap ..).Есть до 120 свойств, влияющих на то, что будет рисовать, как мигать и так далее.Устаревший код спагетти.

Когда я что-то меняю, я бы хотел сначала протестировать старые функции.Есть ли рекомендуемый способ, как покрыть QWidget::paintEvent(QPaintEvent* event) юнит-тестами?Нужно ли имитировать QPainter, или есть способ проверить вывод paintEvent?

Как вы покрываете paintEvetnt тестами?

1 Ответ

0 голосов
/ 22 мая 2019

Наконец, хранение и сравнение изображений, таких как:

auto configuredImage = widgetUnderTest->grab().toImage();
QImage sampleImage;      
sampleImage.load("src/Images/configuredImage.png");
QCOMPARE(configuredImage, sampleImage);
...