+ [misc] Add unit tests for programZen::getKanbanList() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-11-12 08:31:06 +08:00
co-authored by Claude
parent 249fc93670
commit c848604b41
8 changed files with 547 additions and 0 deletions
@@ -79,4 +79,21 @@ class programTest
return $result;
}
/**
* Test getKanbanList method.
*
* @param string $browseType
* @access public
* @return array
*/
public function getKanbanListTest(string $browseType = 'my')
{
$method = $this->objectZen->getMethod('getKanbanList');
$method->setAccessible(true);
$result = $method->invokeArgs($this->objectZen->newInstance(), array($browseType));
if(dao::isError()) return dao::getError();
return $result;
}
}
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env php
<?php
/**
title=测试 programZen::getKanbanList();
timeout=0
cid=0
- 测试步骤1:默认参数my获取看板列表 @1
- 测试步骤2:参数为my获取看板列表 @1
- 测试步骤3:参数为other获取看板列表 @1
- 测试步骤4:参数为空字符串获取看板列表 @1
- 测试步骤5:测试返回数组长度 @1
- 测试步骤6:验证方法可正常调用无错误 @array
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/programzen.unittest.class.php';
zenData('project')->loadYaml('getkanbanlist/project', false, 2)->gen(50);
zenData('product')->loadYaml('getkanbanlist/product', false, 2)->gen(30);
zenData('productplan')->loadYaml('getkanbanlist/productplan', false, 2)->gen(40);
zenData('release')->loadYaml('getkanbanlist/release', false, 2)->gen(30);
zenData('projectproduct')->loadYaml('getkanbanlist/projectproduct', false, 2)->gen(25);
zenData('stakeholder')->loadYaml('getkanbanlist/stakeholder', false, 2)->gen(50);
su('admin');
$programTest = new programTest();
r(is_array($programTest->getKanbanListTest())) && p() && e('1'); // 测试步骤1:默认参数my获取看板列表
r(is_array($programTest->getKanbanListTest('my'))) && p() && e('1'); // 测试步骤2:参数为my获取看板列表
r(is_array($programTest->getKanbanListTest('other'))) && p() && e('1'); // 测试步骤3:参数为other获取看板列表
r(is_array($programTest->getKanbanListTest(''))) && p() && e('1'); // 测试步骤4:参数为空字符串获取看板列表
r(count($programTest->getKanbanListTest('my')) >= 0) && p() && e('1'); // 测试步骤5:测试返回数组长度
r(gettype($programTest->getKanbanListTest('my'))) && p() && e('array'); // 测试步骤6:验证方法可正常调用无错误
@@ -0,0 +1,90 @@
---
title: 产品测试数据
desc: 用于getKanbanList方法的产品测试数据
fields:
- field: id
note: ID
range: 1-30
prefix: ""
postfix: ""
- field: program
note: 所属项目集
range: 0{5},1{8},2{7},3{5},4{5}
- field: name
note: 产品名称
range: '产品A{5},产品B{5},产品C{5},产品D{5},产品E{5},产品F{5}'
- field: code
note: 产品代码
range: ''
- field: shadow
note: 影子产品
range: 0
- field: bind
note: 绑定
range: '0'
- field: line
note: 产品线
range: 0
- field: type
note: 类型
range: normal
- field: status
note: 状态
range: normal
- field: subStatus
note: 子状态
range: ''
- field: desc
note: 描述
range: ''
- field: PO
note: 产品负责人
range: admin{15},user1{8},user2{7}
- field: QD
note: QD
range: ''
- field: RD
note: RD
range: ''
- field: feedback
note: 反馈
range: ''
- field: ticket
note: 工单
range: ''
- field: workflowGroup
note: 工作流组
range: 0
- field: acl
note: 访问控制
range: open
- field: groups
note: 分组
range: ''
- field: whitelist
note: 白名单
range: ''
- field: reviewer
note: 评审者
range: ''
- field: createdBy
note: 创建者
range: admin
- field: createdDate
note: 创建时间
range: '(-6M)-(-1M):30D'
type: timestamp
format: YYYY-MM-DD hh:mm:ss
- field: createdVersion
note: 创建版本
range: ''
- field: order
note: 排序
range: 0
- field: vision
note: 视图
range: rnd
- field: deleted
note: 已删除
range: '0'
@@ -0,0 +1,61 @@
---
title: 产品计划测试数据
desc: 用于getKanbanList方法的产品计划测试数据
fields:
- field: id
note: ID
range: 1-40
prefix: ""
postfix: ""
- field: product
note: 所属产品
range: 1-30:R
- field: branch
note: 分支
range: '0'
- field: parent
note: 父计划
range: 0
- field: title
note: 计划名称
range: '计划1.0{10},计划2.0{10},计划3.0{10},计划4.0{5},计划5.0{5}'
- field: status
note: 状态
range: '[wait]{10},[doing]{15},[done]{10},[closed]{5}'
- field: desc
note: 描述
range: ''
- field: begin
note: 开始时间
range: '(-3M)-(-1M):30D'
type: timestamp
format: YYYY-MM-DD
- field: end
note: 结束时间
range: '(+1M)-(+6M):60D'
type: timestamp
format: YYYY-MM-DD
- field: finishedDate
note: 完成时间
range: '[]'
- field: closedDate
note: 关闭时间
range: '[]'
- field: order
note: 排序
range: ''
- field: closedReason
note: 关闭原因
range: ''
- field: createdBy
note: 创建者
range: admin
- field: createdDate
note: 创建时间
range: '(-3M)-(-1M):30D'
type: timestamp
format: YYYY-MM-DD hh:mm:ss
- field: deleted
note: 已删除
range: '0'
@@ -0,0 +1,194 @@
---
title: 项目集和项目测试数据
desc: 用于getKanbanList方法的项目集测试数据
fields:
- field: id
note: ID
range: 1-50
prefix: ""
postfix: ""
- field: project
note: 所属项目
range: 0
- field: isTpl
note: 是否模板
range: 0
- field: charter
note: 章程
range: 0
- field: model
note: 模型
range: ''
- field: type
note: 类型
range: '[program]{20},[project]{10},[sprint]{5},[stage]{5},[kanban]{5},[waterfallplus]{5}'
- field: category
note: 分类
range: ''
- field: lifetime
note: 生命周期
range: ''
- field: budget
note: 预算
range: '0'
- field: budgetUnit
note: 预算单位
range: CNY
- field: attribute
note: 属性
range: ''
- field: percent
note: 百分比
range: 0
- field: milestone
note: 里程碑
range: '0'
- field: output
note: 输出
range: ''
- field: auth
note: 权限
range: ''
- field: storyType
note: 需求类型
range: ''
- field: parent
note: 父项目集
range: 0{30},1{10},2{10}
- field: path
note: 路径
range: '`,`'
- field: grade
note: 等级
range: 1{30},2{20}
- field: name
note: 名称
range: '顶级项目集{10},子项目集{10},项目{20},执行{10}'
- field: code
note: 代码
range: ''
- field: hasProduct
note: 是否有产品
range: '0'
- field: begin
note: 开始时间
range: '(-6M)-(-1M):60D'
type: timestamp
format: YYYY-MM-DD
- field: end
note: 结束时间
range: '(+1M)-(+12M):60D'
type: timestamp
format: YYYY-MM-DD
- field: realBegan
note: 实际开始时间
range: '(-5M)-(-1M):60D,[]{10}'
type: timestamp
format: YYYY-MM-DD
- field: realEnd
note: 实际结束时间
range: '[]{45},(-1M)-(+1M):60D'
type: timestamp
format: YYYY-MM-DD
- field: status
note: 状态
range: '[wait]{15},[doing]{20},[suspended]{5},[closed]{10}'
- field: subStatus
note: 子状态
range: ''
- field: pri
note: 优先级
range: 1-4
- field: desc
note: 描述
range: ''
- field: version
note: 版本
range: 1
- field: parentVersion
note: 父版本
range: 1
- field: planDuration
note: 计划工期
range: 0
- field: realDuration
note: 实际工期
range: 0
- field: openedBy
note: 创建者
range: admin{30},user1{10},user2{10}
- field: openedDate
note: 创建时间
range: '(-6M)-(-1M):30D'
type: timestamp
format: YYYY-MM-DD hh:mm:ss
- field: openedVersion
note: 创建版本
range: ''
- field: lastEditedBy
note: 最后编辑者
range: '[]'
- field: lastEditedDate
note: 最后编辑时间
range: '[]'
- field: closedBy
note: 关闭者
range: '[]'
- field: closedDate
note: 关闭时间
range: '[]'
- field: canceledBy
note: 取消者
range: '[]'
- field: canceledDate
note: 取消时间
range: '[]'
- field: suspendedDate
note: 挂起时间
range: '[]'
- field: PO
note: 产品负责人
range: '[]'
- field: PM
note: 项目经理
range: admin{30},user1{10},user2{10}
- field: QD
note: QD
range: '[]'
- field: RD
note: RD
range: '[]'
- field: team
note: 团队
range: '[]'
- field: acl
note: 访问控制
range: open
- field: whitelist
note: 白名单
range: '[]'
- field: order
note: 排序
range: 0
- field: deleted
note: 已删除
range: '0'
- field: vision
note: 视图
range: rnd
- field: displayCards
note: 显示卡片
range: 0
- field: fluidBoard
note: 流体看板
range: '0'
- field: colWidth
note: 列宽
range: 264
- field: minColWidth
note: 最小列宽
range: 200
- field: maxColWidth
note: 最大列宽
range: 384
@@ -0,0 +1,17 @@
---
title: 项目产品关联测试数据
desc: 用于getKanbanList方法的项目产品关联测试数据
fields:
- field: project
note: 项目ID
range: 21-45
- field: product
note: 产品ID
range: 1-30:R
- field: branch
note: 分支
range: '0'
- field: plan
note: 计划
range: ''
@@ -0,0 +1,82 @@
---
title: 发布测试数据
desc: 用于getKanbanList方法的发布测试数据
fields:
- field: id
note: ID
range: 1-30
prefix: ""
postfix: ""
- field: project
note: 所属项目
range: '0'
- field: product
note: 所属产品
range: 1-30:R
- field: branch
note: 分支
range: '0'
- field: shadow
note: 影子发布
range: 0
- field: build
note: 版本
range: ''
- field: name
note: 发布名称
range: '发布V1.0{10},发布V2.0{10},发布V3.0{10}'
- field: system
note: 系统
range: 0
- field: releases
note: 发布
range: ''
- field: marker
note: 标记
range: '0'
- field: date
note: 发布日期
range: '(-2M)-(+1M):30D'
type: timestamp
format: YYYY-MM-DD
- field: releasedDate
note: 实际发布日期
range: '(-2M)-(+1M):30D,[]{5}'
type: timestamp
format: YYYY-MM-DD
- field: stories
note: 需求
range: ''
- field: bugs
note: Bug
range: ''
- field: leftBugs
note: 遗留Bug
range: ''
- field: desc
note: 描述
range: ''
- field: mailto
note: 邮件通知
range: ''
- field: notify
note: 通知
range: ''
- field: status
note: 状态
range: normal
- field: subStatus
note: 子状态
range: ''
- field: createdBy
note: 创建者
range: admin
- field: createdDate
note: 创建时间
range: '(-2M)-(-1M):15D'
type: timestamp
format: YYYY-MM-DD hh:mm:ss
- field: deleted
note: 已删除
range: '0'
@@ -0,0 +1,48 @@
---
title: 干系人测试数据
desc: 用于getKanbanList方法的干系人测试数据
fields:
- field: id
note: ID
range: 1-50
prefix: ""
postfix: ""
- field: objectID
note: 对象ID
range: 1-20:R
- field: objectType
note: 对象类型
range: '[program]{30},[project]{20}'
- field: user
note: 用户
range: admin{20},user1{15},user2{15}
- field: name
note: 名称
range: ''
- field: type
note: 类型
range: inside
- field: key
note: 关键
range: no
- field: from
note: 来源
range: ''
- field: createdBy
note: 创建者
range: admin
- field: createdDate
note: 创建时间
range: '(-3M)-(-1M):15D'
type: timestamp
format: YYYY-MM-DD hh:mm:ss
- field: editedBy
note: 编辑者
range: '[]'
- field: editedDate
note: 编辑时间
range: '[]'
- field: deleted
note: 已删除
range: '0'