From 64da4369ca48dd00be0d64b33f07074cebc642ed Mon Sep 17 00:00:00 2001 From: liugang Date: Wed, 17 Sep 2025 00:56:37 +0800 Subject: [PATCH] + [misc] Add unit test script for projectZen::setProjectMenu() 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/project/test/zen/setprojectmenu.php | 42 +++++++++++++ .../test/zen/yaml/project_setprojectmenu.yaml | 63 +++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100755 module/project/test/zen/setprojectmenu.php create mode 100644 module/project/test/zen/yaml/project_setprojectmenu.yaml diff --git a/module/project/test/zen/setprojectmenu.php b/module/project/test/zen/setprojectmenu.php new file mode 100755 index 0000000000..ca4927f7c1 --- /dev/null +++ b/module/project/test/zen/setprojectmenu.php @@ -0,0 +1,42 @@ +#!/usr/bin/env php +id->range('1-10'); +$table->name->range('项目1,项目2,项目3,项目4,项目5'); +$table->parent->range('1-5'); +$table->type->range('project'); +$table->status->range('wait,doing,closed'); +$table->gen(10); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$projectTest = new projectzenTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($projectTest->setProjectMenuTest(1, 1)) && p('program_tab') && e('program menu set'); // 步骤1:program tab设置菜单 +r($projectTest->setProjectMenuTest(2, 1)) && p('project_tab') && e('project menu set'); // 步骤2:project tab设置菜单 +r($projectTest->setProjectMenuTest(3, 2)) && p('other_tab') && e('no menu action'); // 步骤3:其他tab值无操作 +r($projectTest->setProjectMenuTest(4, 2)) && p('empty_tab') && e('no menu action'); // 步骤4:空tab值无操作 +r($projectTest->setProjectMenuTest(null, 1)) && p() && e('projectID parameter cannot be null'); // 步骤5:参数验证测试 \ No newline at end of file diff --git a/module/project/test/zen/yaml/project_setprojectmenu.yaml b/module/project/test/zen/yaml/project_setprojectmenu.yaml new file mode 100644 index 0000000000..3bf4d95108 --- /dev/null +++ b/module/project/test/zen/yaml/project_setprojectmenu.yaml @@ -0,0 +1,63 @@ +--- +title: setProjectMenu 方法测试数据 +desc: 为 projectZen::setProjectMenu() 方法提供测试数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 项目ID + range: 1-10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: name + note: 项目名称 + range: '项目1,项目2,项目3,项目4,项目5' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: parent + note: 父项目ID + range: 1-5 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: type + note: 项目类型 + range: 'project' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: status + note: 项目状态 + range: 'wait,doing,closed' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: model + note: 项目模型 + range: 'scrum,waterfall,kanban' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: hasProduct + note: 是否关联产品 + range: '0,1' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: multiple + note: 是否多执行 + range: '0,1' + prefix: "" + postfix: "" + loop: 0 + format: "" \ No newline at end of file