+ [misc] Add unit tests for metricZen::getCreateEditInfo() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-15 15:09:57 +08:00
co-authored by Claude
parent b452dfa3a6
commit 22221ea970
4 changed files with 222 additions and 0 deletions
@@ -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;
}
}
+61
View File
@@ -0,0 +1,61 @@
#!/usr/bin/env php
<?php
/**
title=测试 metricZen::getCreateEditInfo();
timeout=0
cid=0
- 步骤1:获取完整创建编辑信息字段数量 @4
- 步骤2:获取指定字段信息数量 @2
- 步骤3:获取单个字段的name信息第createdBy条的name属性 @创建者
- 步骤4:测试空字段参数 @0
- 步骤5:测试包含所有用户信息字段数量 @4
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/metriczen.unittest.class.php';
// 2. zendata数据准备(根据需要配置)
zendata('metric')->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:测试包含所有用户信息字段数量
@@ -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: ""
@@ -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: ""