From 22221ea9705bf85d585d718bcb442b8e3d4b80db Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 15 Sep 2025 01:50:16 +0800 Subject: [PATCH] + [misc] Add unit tests for metricZen::getCreateEditInfo() 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 --- .../test/lib/metriczen.unittest.class.php | 18 +++ module/metric/test/zen/getcreateeditinfo.php | 61 +++++++++++ .../zen/yaml/metric_getcreateeditinfo.yaml | 103 ++++++++++++++++++ .../test/zen/yaml/user_getcreateeditinfo.yaml | 40 +++++++ 4 files changed, 222 insertions(+) create mode 100755 module/metric/test/zen/getcreateeditinfo.php create mode 100644 module/metric/test/zen/yaml/metric_getcreateeditinfo.yaml create mode 100644 module/metric/test/zen/yaml/user_getcreateeditinfo.yaml diff --git a/module/metric/test/lib/metriczen.unittest.class.php b/module/metric/test/lib/metriczen.unittest.class.php index 747e1ad7f1..cdf4407f97 100644 --- a/module/metric/test/lib/metriczen.unittest.class.php +++ b/module/metric/test/lib/metriczen.unittest.class.php @@ -358,4 +358,22 @@ class metricZenTest if(dao::isError()) return dao::getError(); return $result; } + + /** + * Test getCreateEditInfo method. + * + * @param object $view + * @param string $fields + * @access public + * @return mixed + */ + public function getCreateEditInfoZenTest($view, $fields = 'createdBy,implementedBy,offlineBy,lastEdited') + { + $method = $this->metricZenTest->getMethod('getCreateEditInfo'); + $method->setAccessible(true); + + $result = $method->invokeArgs($this->metricZenTest->newInstance(), array($view, $fields)); + if(dao::isError()) return dao::getError(); + return $result; + } } \ No newline at end of file diff --git a/module/metric/test/zen/getcreateeditinfo.php b/module/metric/test/zen/getcreateeditinfo.php new file mode 100755 index 0000000000..8956477642 --- /dev/null +++ b/module/metric/test/zen/getcreateeditinfo.php @@ -0,0 +1,61 @@ +#!/usr/bin/env php +loadYaml('metric_getcreateeditinfo', false, 2)->gen(10); +zendata('user')->loadYaml('user_getcreateeditinfo', false, 2)->gen(5); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$metricZenTest = new metricZenTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +$view1 = new stdclass(); +$view1->metric = new stdclass(); +$view1->metric->id = 1; +$view1->metric->createdBy = 'admin'; +$view1->metric->createdDate = '2024-01-01 10:00:00'; +$view1->metric->implementedBy = 'admin'; +$view1->metric->implementedDate = '2024-01-11 10:00:00'; +$view1->metric->delistedBy = ''; +$view1->metric->delistedDate = ''; +$view1->metric->editedBy = 'admin'; +$view1->metric->editedDate = '2024-03-01 10:00:00'; + +$view2 = new stdclass(); +$view2->metric = new stdclass(); +$view2->metric->id = 2; +$view2->metric->createdBy = 'user1'; +$view2->metric->createdDate = '2024-01-02 11:00:00'; +$view2->metric->implementedBy = 'user1'; +$view2->metric->implementedDate = '2024-01-12 11:00:00'; +$view2->metric->delistedBy = 'user2'; +$view2->metric->delistedDate = '2024-02-12 11:00:00'; +$view2->metric->editedBy = 'user1'; +$view2->metric->editedDate = '2024-03-02 11:00:00'; + +r(count($metricZenTest->getCreateEditInfoZenTest($view1))) && p() && e('4'); // 步骤1:获取完整创建编辑信息字段数量 +r(count($metricZenTest->getCreateEditInfoZenTest($view2, 'createdBy,offlineBy'))) && p() && e('2'); // 步骤2:获取指定字段信息数量 +r($metricZenTest->getCreateEditInfoZenTest($view1, 'createdBy')) && p('createdBy:name') && e('创建者'); // 步骤3:获取单个字段的name信息 +r(count($metricZenTest->getCreateEditInfoZenTest($view1, ''))) && p() && e('0'); // 步骤4:测试空字段参数 +r(count($metricZenTest->getCreateEditInfoZenTest($view2, 'createdBy,implementedBy,offlineBy,lastEdited'))) && p() && e('4'); // 步骤5:测试包含所有用户信息字段数量 \ No newline at end of file diff --git a/module/metric/test/zen/yaml/metric_getcreateeditinfo.yaml b/module/metric/test/zen/yaml/metric_getcreateeditinfo.yaml new file mode 100644 index 0000000000..785607e80d --- /dev/null +++ b/module/metric/test/zen/yaml/metric_getcreateeditinfo.yaml @@ -0,0 +1,103 @@ +--- +title: getCreateEditInfo方法测试数据 +desc: 为getCreateEditInfo方法测试提供度量项数据 + +fields: +- field: id + note: 度量项ID + range: 1-10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: name + note: 度量项名称 + range: 测试度量1,测试度量2,测试度量3,测试度量4,测试度量5,测试度量6,测试度量7,测试度量8,测试度量9,测试度量10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: code + note: 度量项编码 + range: metric_code_1,metric_code_2,metric_code_3,metric_code_4,metric_code_5,metric_code_6,metric_code_7,metric_code_8,metric_code_9,metric_code_10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: scope + note: 度量范围 + range: system,product,project,execution,system,product,project,execution,system,product + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: object + note: 度量对象 + range: user,story,task,bug,user,story,task,bug,user,story + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: purpose + note: 度量用途 + range: scale,quality,efficiency,scale,quality,efficiency,scale,quality,efficiency,scale + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: createdBy + note: 创建者 + range: admin,user1,user2,admin,user1,user2,admin,user1,user2,admin + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: createdDate + note: 创建日期 + range: '2024-01-01 10:00:00','2024-01-02 11:00:00','2024-01-03 12:00:00','2024-01-04 13:00:00','2024-01-05 14:00:00','2024-01-06 15:00:00','2024-01-07 16:00:00','2024-01-08 17:00:00','2024-01-09 18:00:00','2024-01-10 19:00:00' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: implementedBy + note: 实施者 + range: admin,user1,user2,'',admin,user1,user2,'',admin,user1 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: implementedDate + note: 实施日期 + range: '2024-01-11 10:00:00','2024-01-12 11:00:00','2024-01-13 12:00:00','','2024-01-15 14:00:00','2024-01-16 15:00:00','2024-01-17 16:00:00','','2024-01-19 18:00:00','2024-01-20 19:00:00' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: delistedBy + note: 下线者 + range: '',user2,admin,'',user1,user2,'',admin,user1,'' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: delistedDate + note: 下线日期 + range: '','2024-02-12 11:00:00','2024-02-13 12:00:00','','2024-02-15 14:00:00','2024-02-16 15:00:00','','2024-02-18 17:00:00','2024-02-19 18:00:00','' + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedBy + note: 编辑者 + range: admin,user1,user2,admin,user1,user2,admin,user1,user2,admin + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedDate + note: 编辑日期 + range: '2024-03-01 10:00:00','2024-03-02 11:00:00','2024-03-03 12:00:00','2024-03-04 13:00:00','2024-03-05 14:00:00','2024-03-06 15:00:00','2024-03-07 16:00:00','2024-03-08 17:00:00','2024-03-09 18:00:00','2024-03-10 19:00:00' + prefix: "" + postfix: "" + loop: 0 + format: "" \ No newline at end of file diff --git a/module/metric/test/zen/yaml/user_getcreateeditinfo.yaml b/module/metric/test/zen/yaml/user_getcreateeditinfo.yaml new file mode 100644 index 0000000000..7ab5e3935d --- /dev/null +++ b/module/metric/test/zen/yaml/user_getcreateeditinfo.yaml @@ -0,0 +1,40 @@ +--- +title: getCreateEditInfo方法测试用户数据 +desc: 为getCreateEditInfo方法测试提供用户数据 + +fields: +- field: id + note: 用户ID + range: 1-5 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: account + note: 用户账号 + range: admin,user1,user2,user3,user4 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: realname + note: 真实姓名 + range: 管理员,用户1,用户2,用户3,用户4 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: password + note: 密码 + range: admin123,user123,user223,user323,user423 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: deleted + note: 删除状态 + range: '0' + prefix: "" + postfix: "" + loop: 0 + format: "" \ No newline at end of file