feat: 参考开发编码规范,提交dockapplication的单元测试,删除ut_main.cpp中测试代码o

添加dockapplication单元测试并删除ut_main.cpp的dockapplication类的单元测试

Log: 添加dockapplication类的单元测试参考开发编码规范
Change-Id: Ie20e58c3386a7e382dee5e21e8719b4c6db5d4ae
This commit is contained in:
songwentao 2021-03-24 14:28:49 +08:00
parent e2e9211d1c
commit 04404a6aa9
2 changed files with 91 additions and 12 deletions

View File

@ -22,7 +22,6 @@
#include "dockapplication.h"
#include <QDebug>
#include <QMouseEvent>
#include <QTouchEvent>
@ -36,17 +35,6 @@ int main(int argc, char **argv)
qApp->setProperty("CANSHOW", true);
QMouseEvent mouseEvent1(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByQt);
qApp->sendEvent(&app, &mouseEvent1);
QMouseEvent mouseEvent2(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication);
qApp->sendEvent(&app, &mouseEvent2);
QList<QTouchEvent::TouchPoint> list;
list << QTouchEvent::TouchPoint(0) << QTouchEvent::TouchPoint(1) << QTouchEvent::TouchPoint(2);
QTouchEvent touchEven(QEvent::TouchBegin, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
qApp->sendEvent(&app, &touchEven);
::testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();

View File

@ -0,0 +1,91 @@
#include "dockapplication.h"
#include "constants.h"
#include <QObject>
#include <QTouchEvent>
#include <QTest>
#include <QDebug>
#include <gtest/gtest.h>
class Test_DockApplication : public QObject, public ::testing::Test
{
public:
virtual void SetUp() override;
virtual void TearDown() override;
protected:
bool eventFilter(QObject* obj, QEvent *event) override
{
if (qApp != obj)
return false;
if (event->type() == QEvent::TouchUpdate) {
QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
if (touchEvent)
m_touchPointNum = touchEvent->touchPoints().size();
}
return false;
}
public:
int m_touchPointNum; // 触摸点数
};
void Test_DockApplication::SetUp()
{
qApp->installEventFilter(this);
m_touchPointNum = 0;
}
void Test_DockApplication::TearDown()
{
qApp->removeEventFilter(this);
}
// 检测鼠标事件类型
TEST_F(Test_DockApplication, dockapplication_touchstate_test)
{
// Qt::MouseEventSynthesizedByQt
QMouseEvent mouseEvent1(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByQt);
qApp->sendEvent(qApp, &mouseEvent1);
ASSERT_TRUE(qApp->property(IS_TOUCH_STATE).toBool());
// Qt::MouseEventSynthesizedByApplication
QMouseEvent mouseEvent2(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, Qt::MouseEventSynthesizedByApplication);
qApp->sendEvent(qApp, &mouseEvent2);
ASSERT_TRUE(qApp->property(IS_TOUCH_STATE).toBool());
// 不指定
QMouseEvent mouseEvent3(QMouseEvent::MouseButtonPress, QPoint(), QPoint(), QPoint(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
qApp->sendEvent(qApp, &mouseEvent3);
ASSERT_FALSE(qApp->property(IS_TOUCH_STATE).toBool());
}
// 检测触摸点数,如果是多点,就截获不到,如果是单点,可以正常截获
TEST_F(Test_DockApplication, dockapplication_touchpoints_test)
{
// 三点触摸
QList<QTouchEvent::TouchPoint> list;
list << QTouchEvent::TouchPoint(0) << QTouchEvent::TouchPoint(1) << QTouchEvent::TouchPoint(2);
QTouchEvent threePointsTouchEvent(QEvent::TouchUpdate, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
QApplication::sendEvent(qApp, &threePointsTouchEvent);
QTest::qWait(10);
EXPECT_EQ(m_touchPointNum, 0);
// 单点触摸
list.clear();
list << QTouchEvent::TouchPoint(0);
QTouchEvent onePointTouchEvent(QEvent::TouchUpdate, nullptr, Qt::NoModifier, Qt::TouchPointPressed, list);
QApplication::sendEvent(qApp, &onePointTouchEvent);
QTest::qWait(10);
EXPECT_EQ(m_touchPointNum, 1);
}