test: add PageScene unit tests for creatGroup, cancelGroup, releaseBzItemsTreeInfo, event, mouseEvent - #230
Conversation
Reviewer's GuideAdds 24 Google Test cases in tests/test_pagescene.cpp covering PageScene group lifecycle, tree cleanup, event dispatch, and mouse handling. The PR changes no production code and reports a successful Qt 6.8 build with all tests passing. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
deepin pr auto reviewAI 代码审查报告总体评分: 审查结果: 通过 总体评价
漏洞对比统计
详细分析1. 语法逻辑(25/25分)✓
问题列表: 分析说明:
2. 代码质量(20/25分)✓
问题列表:
改进建议:
3. 代码性能(20/20分)✓
问题列表: 分析说明:
4. 代码安全(30/30分)✓
安全漏洞详情: 分析说明:
改进建议代码示例建议1:提取公共设置代码到测试固件 // 建议在测试固件中提取公共设置代码
class PageSceneTestBase : public ::testing::Test {
protected:
PageView *view = nullptr;
PageScene *scene = nullptr;
void SetUp() override {
createNewViewByShortcutKey();
view = getCurView();
ASSERT_NE(view, nullptr);
scene = view->drawScene();
ASSERT_NE(scene, nullptr);
}
};
// 然后测试用例可以简化为:
TEST_F(PageSceneTestBase, SomeTest) {
// 直接使用 view 和 scene,无需重复设置
}建议2:增强删除验证测试 TEST(PageSceneReleaseBzItemsTreeInfo, WithBzItemsNotInScene_DeletesBzItems)
{
PageScene::CGroupBzItemsTree info;
CGraphicsRectItem *item = new CGraphicsRectItem();
ASSERT_NE(item, nullptr);
EXPECT_EQ(item->scene(), nullptr);
info.bzItems.append(item);
PageScene::releaseBzItemsTreeInfo(info);
// 验证函数已接管所有权并清空列表
EXPECT_TRUE(info.bzItems.isEmpty());
SUCCEED();
}
TEST(PageSceneReleaseBzItemsTreeInfo, WithPGroupNotInScene_DeletesLater)
{
PageScene::CGroupBzItemsTree info;
CGraphicsItemGroup *group = new CGraphicsItemGroup();
ASSERT_NE(group, nullptr);
EXPECT_EQ(group->scene(), nullptr);
info.pGroup = group;
PageScene::releaseBzItemsTreeInfo(info);
QCoreApplication::processEvents();
// 验证函数已接管所有权并置空
EXPECT_EQ(info.pGroup, nullptr);
SUCCEED();
}审查结论本次提交为 代码语法正确,逻辑清晰,无安全漏洞。主要改进点在于减少代码重复和增强部分测试的断言验证。整体代码质量良好,建议合并。 本报告由 AI 代码审查工具自动生成 |
…ItemsTreeInfo, event, mouseEvent Add 24 Google Test cases for PageScene class in cdrawscene.cpp, covering creatGroup, cancelGroup, releaseBzItemsTreeInfo, event, and mouseEvent methods with various scene states. 为cdrawscene.cpp中PageScene类的creatGroup、cancelGroup、 releaseBzItemsTreeInfo、event和mouseEvent方法补充24个Google Test 单元测试用例,覆盖空列表组合、组合取消、树信息释放、 触摸/手势事件及鼠标事件分发等场景。 Log: 补充PageScene类组合及事件方法单元测试 Influence: 提升PageScene类5个方法的测试覆盖率,验证 图元组合/取消组合、分组树信息释放及事件分发等功能的正确性。
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: lzwind, wyu71 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Summary
Add 24 Google Test unit test cases for 5 methods in
PageSceneclass (src/drawshape/cdrawscene.cpp):Test Coverage
creatGroup (4 tests)
cancelGroup (4 tests)
releaseBzItemsTreeInfo (CGroupBzItemsTree) (4 tests)
releaseBzItemsTreeInfo (CGroupBzItemsTreeInfo) (2 tests)
event (5 tests)
mouseEvent (5 tests)
Build & Test Results
cmake -DDEEPINDRAW_TEST=ON— success (Qt 6.8.0)Notes
tests/test_pagescene.cppmodified; no production source code changes#define protected public/#define private publicbefore includes)Summary by Sourcery
Tests: