我有自定义的 QWidget,其中所有绘画都是手动完成的(fillRect、drawRect、drawText、drawPixmap ..)。多达 120 个属性会影响绘制内容、闪烁方式等。遗留的意大利面条代码。
当我更改某些内容时,我想首先测试旧功能。是否有推荐的方法如何通过单元测试覆盖 QWidget::paintEvent(QPaintEvent* event)
?我是否必须模拟 QPainter,或者有没有办法检查 PaintEvent 输出?
你如何用测试来覆盖paintEvetnt?
最佳答案
最后存储并比较图像,例如:
auto configuredImage = widgetUnderTest->grab().toImage();
QImage sampleImage;
sampleImage.load("src/Images/configuredImage.png");
QCOMPARE(configuredImage, sampleImage);
关于c++ - QTest覆盖涂料法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56251824/