From f9f94af62766c8fe813a4f7142bfa4d823d3d488 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 23 Sep 2025 05:05:21 +0800 Subject: [PATCH] * [misc] Enhance unit tests for myModel::getOverview() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/my/test/model/getoverview.php | 102 +++++++++++++++++++-------- 1 file changed, 74 insertions(+), 28 deletions(-) diff --git a/module/my/test/model/getoverview.php b/module/my/test/model/getoverview.php index db1875210a..35e3680a1c 100755 --- a/module/my/test/model/getoverview.php +++ b/module/my/test/model/getoverview.php @@ -1,40 +1,86 @@ #!/usr/bin/env php loadYaml('program')->gen('20'); -zenData('usergroup')->gen('10'); -zenData('group')->gen('10'); -zenData('bug')->gen('20'); -zenData('task')->gen('20'); -zenData('story')->gen('20'); -zenData('effort')->gen('1'); -zenData('user')->gen('1'); +// zendata数据准备 - 创建完整的测试数据环境 +zenData('project')->loadYaml('program')->gen(20); +zenData('usergroup')->gen(10); +zenData('group')->gen(10); +zenData('user')->gen(10); +zenData('bug')->gen(20); +zenData('task')->gen(20); +zenData('story')->gen(20); +zenData('effort')->gen(10); -su('admin'); +// 创建管理员用户组数据 +$adminGroup = zenData('group'); +$adminGroup->id->range('1'); +$adminGroup->name->range('admin'); +$adminGroup->role->range('admin'); +$adminGroup->gen(1); + +// 创建普通用户组数据 +$userGroup = zenData('group'); +$userGroup->id->range('2'); +$userGroup->name->range('user'); +$userGroup->role->range('user'); +$userGroup->gen(1); + +// 创建用户组关联数据 +$userGroupRelation = zenData('usergroup'); +$userGroupRelation->account->range('admin,user1{9}'); +$userGroupRelation->group->range('1,2{9}'); +$userGroupRelation->gen(10); + +// 测试准备 global $tester; $tester->loadModel('program')->refreshStats(true); - -/** - -title=测试 myModel->getOverview(); -timeout=0 -cid=1 - -- projectTotal数据获取 @4 -- allConsumed数据获取 @33 -- thisYearConsumed数据获取 @1 - -*/ - $my = new myTest(); -$projectTotal = $my->getOverviewTest()->projectTotal; -$allConsumed = $my->getOverviewTest()->allConsumed; -$thisYearConsumed = $my->getOverviewTest()->thisYearConsumed; +// 步骤1-4:管理员用户测试 +su('admin'); +r($my->getOverviewTest()) && p('projectTotal,allConsumed,thisYearConsumed') && e('4,33,1'); // 步骤1:管理员用户获取项目总览数据 +r($my->getOverviewTest()) && p('projectTotal') && e('4'); // 步骤2:验证管理员权限下的项目数量统计 +r($my->getOverviewTest()) && p('allConsumed') && e('33'); // 步骤3:验证管理员权限下的项目总工时统计 +r($my->getOverviewTest()) && p('thisYearConsumed') && e('1'); // 步骤4:验证管理员权限下的本年度工时统计 -r($projectTotal) && p() && e('4'); // projectTotal数据获取 -r($allConsumed) && p() && e('33'); // allConsumed数据获取 -r($thisYearConsumed) && p() && e('1'); // thisYearConsumed数据获取 \ No newline at end of file +// 步骤5-8:普通用户测试 +su('user1'); +r($my->getOverviewTest()) && p('myTaskTotal,myStoryTotal,myBugTotal') && e('0,0,0'); // 步骤5:普通用户获取个人工作数据 +r($my->getOverviewTest()) && p('myTaskTotal') && e('0'); // 步骤6:验证普通用户的任务统计数据 +r($my->getOverviewTest()) && p('myStoryTotal') && e('0'); // 步骤7:验证普通用户的需求统计数据 +r($my->getOverviewTest()) && p('myBugTotal') && e('0'); // 步骤8:验证普通用户的Bug统计数据 + +// 步骤9-10:边界条件和数据完整性测试 +su('user2'); // 切换到另一个普通用户 +$result = $my->getOverviewTest(); +r(isset($result->myTaskTotal) && isset($result->myStoryTotal) && isset($result->myBugTotal)) && p() && e('1'); // 步骤9:验证非管理员组用户权限验证 +r(!isset($result->projectTotal) && !isset($result->allConsumed) && !isset($result->thisYearConsumed)) && p() && e('1'); // 步骤10:验证返回对象的数据完整性 \ No newline at end of file