diff --git a/module/project/test/lib/project.unittest.class.php b/module/project/test/lib/project.unittest.class.php index 8d80e570e0..e72a095e0a 100644 --- a/module/project/test/lib/project.unittest.class.php +++ b/module/project/test/lib/project.unittest.class.php @@ -229,4 +229,19 @@ class Project return $result; } + + /** + * Test setNoMultipleMenu method. + * + * @param int $projectID + * @access public + * @return mixed + */ + public function setNoMultipleMenuTest($projectID = 0) + { + $result = $this->objectModel->setNoMultipleMenu($projectID); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/project/test/model/setnomultiplemenu.php b/module/project/test/model/setnomultiplemenu.php new file mode 100755 index 0000000000..4ce352be53 --- /dev/null +++ b/module/project/test/model/setnomultiplemenu.php @@ -0,0 +1,43 @@ +#!/usr/bin/env php +id->range('1-10'); +$projectTable->name->range('项目{1-10}'); +$projectTable->type->range('project{3},sprint{3},kanban{3},stage{1}'); +$projectTable->model->range('scrum{3},waterfall{3},kanban{3},stage{1}'); +$projectTable->multiple->range('0{8},1{2}'); +$projectTable->hasProduct->range('1{8},0{2}'); +$projectTable->gen(10); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$projectTest = new Project(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($projectTest->setNoMultipleMenuTest(9)) && p() && e(false); // 步骤1:测试multiple项目 +r($projectTest->setNoMultipleMenuTest(1)) && p() && e(true); // 步骤2:测试project类型项目 +r($projectTest->setNoMultipleMenuTest(2)) && p() && e(true); // 步骤3:测试sprint类型项目 +r($projectTest->setNoMultipleMenuTest(3)) && p() && e(true); // 步骤4:测试kanban类型项目 +r($projectTest->setNoMultipleMenuTest(999)) && p() && e(false); // 步骤5:测试无效项目ID \ No newline at end of file diff --git a/module/project/test/model/yaml/project_setnomultiplemenu.yaml b/module/project/test/model/yaml/project_setnomultiplemenu.yaml new file mode 100644 index 0000000000..cb0e70a308 --- /dev/null +++ b/module/project/test/model/yaml/project_setnomultiplemenu.yaml @@ -0,0 +1,54 @@ +--- +title: setNoMultipleMenu方法测试数据 +desc: 为setNoMultipleMenu方法提供不同类型的项目测试数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 项目ID + range: 1-10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: name + note: 项目名称 + range: '项目{1-10}' + format: "" +- field: code + note: 项目代码 + range: 'PRJ{001-010}' + format: "" +- field: type + note: 项目类型 + range: 'project{3},sprint{3},kanban{3},stage{1}' + format: "" +- field: model + note: 项目模型 + range: 'scrum{3},waterfall{3},kanban{3},stage{1}' + format: "" +- field: multiple + note: 是否多重项目 + range: '0{8},1{2}' + format: "" +- field: hasProduct + note: 是否关联产品 + range: '1{8},0{2}' + format: "" +- field: acl + note: 访问控制 + range: 'open{8},private{2}' + format: "" +- field: status + note: 项目状态 + range: 'wait' + format: "" +- field: begin + note: 开始日期 + range: '2024-01-01' + format: "" +- field: end + note: 结束日期 + range: '2024-12-31' + format: "" \ No newline at end of file