+ [misc] Add unit tests for productZen::getExportData() 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:02 +08:00
co-authored by Claude
parent 10881c87b3
commit 64df9499f3
4 changed files with 250 additions and 0 deletions
+18
View File
@@ -477,4 +477,22 @@ class productZenTest extends baseTest
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test getExportData method.
*
* @param int $programID
* @param string $browseType
* @param string $orderBy
* @param int $param
* @param object $pager
* @access public
* @return mixed
*/
public function getExportDataTest(int $programID = 0, string $browseType = 'all', string $orderBy = 'order_asc', int $param = 0, ?object $pager = null)
{
$result = $this->invokeArgs('getExportData', array($programID, $browseType, $orderBy, $param, $pager));
if(dao::isError()) return dao::getError();
return $result;
}
}
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env php
<?php
/**
title=测试 productZen::getExportData();
timeout=0
cid=0
- 步骤1:测试获取全部产品导出数据 @10
- 步骤2:测试获取项目集1的产品导出数据 @1
- 步骤3:测试获取项目集2的产品导出数据 @1
- 步骤4:测试获取全部产品导出数据不受browseType影响 @10
- 步骤5:测试返回数据包含formatDataForList处理后的字段第0条的type属性 @product
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
zendata('product')->loadYaml('getexportdata', false, 2)->gen(10);
zendata('user')->loadYaml('getexportdata', false, 2)->gen(10);
su('admin');
$productTest = new productZenTest();
r(count($productTest->getExportDataTest(0, 'all', 'order_asc', 0, null))) && p() && e('10'); // 步骤1:测试获取全部产品导出数据
r(count($productTest->getExportDataTest(1, 'all', 'order_asc', 0, null))) && p() && e('1'); // 步骤2:测试获取项目集1的产品导出数据
r(count($productTest->getExportDataTest(2, 'all', 'order_asc', 0, null))) && p() && e('1'); // 步骤3:测试获取项目集2的产品导出数据
r(count($productTest->getExportDataTest(0, 'noclosed', 'order_asc', 0, null))) && p() && e('10'); // 步骤4:测试获取全部产品导出数据不受browseType影响
r($productTest->getExportDataTest(0, 'all', 'order_asc', 0, null)) && p('0:type') && e('product'); // 步骤5:测试返回数据包含formatDataForList处理后的字段
@@ -0,0 +1,180 @@
---
title: 产品表测试数据
desc: 用于测试 getExportData 方法的产品数据
fields:
- field: id
note: 产品ID
range: 1-10
prefix: ""
postfix: ""
- field: program
note: 所属项目集
range: 0{5},1{3},2{2}
- field: name
note: 产品名称
range: 产品A,产品B,产品C,产品D,产品E,产品F,产品G,产品H,产品I,产品J
- field: code
note: 产品代码
range: 1-10
format: "PRD%02d"
- field: shadow
note: 是否影子产品
range: 0
- field: bind
note: 是否绑定
range: '0'
- field: line
note: 产品线
range: 0{7},1{2},2{1}
- field: type
note: 产品类型
range: normal{8},branch{1},platform{1}
- field: status
note: 产品状态
range: normal{7},closed{3}
- field: subStatus
note: 子状态
range: ''
- field: desc
note: 产品描述
range: 这是产品描述{10}
- field: PO
note: 产品负责人
range: admin{3},user1{2},user2{2},user3{3}
- field: QD
note: 测试负责人
range: admin{5},user1{5}
- field: RD
note: 发布负责人
range: admin{5},user2{5}
- field: feedback
note: 反馈负责人
range: ''
- field: ticket
note: 工单负责人
range: ''
- field: workflowGroup
note: 工作流分组
range: 0
- field: acl
note: 访问控制
range: open{6},private{2},custom{2}
- field: groups
note: 分组权限
range: ''
- field: whitelist
note: 白名单
range: ''
- field: reviewer
note: 评审人
range: ''
- field: PMT
note: PMT成员
range: ''
- field: draftEpics
note: 草稿史诗数
range: 0-5
- field: activeEpics
note: 激活史诗数
range: 0-10
- field: changingEpics
note: 变更中史诗数
range: 0-3
- field: reviewingEpics
note: 评审中史诗数
range: 0-2
- field: finishedEpics
note: 已完成史诗数
range: 0-8
- field: closedEpics
note: 已关闭史诗数
range: 0-5
- field: totalEpics
note: 总史诗数
range: 0-20
- field: draftRequirements
note: 草稿需求数
range: 0-5
- field: activeRequirements
note: 激活需求数
range: 5-15
- field: changingRequirements
note: 变更中需求数
range: 0-3
- field: reviewingRequirements
note: 评审中需求数
range: 0-2
- field: finishedRequirements
note: 已完成需求数
range: 3-10
- field: closedRequirements
note: 已关闭需求数
range: 0-5
- field: totalRequirements
note: 总需求数
range: 10-30
- field: draftStories
note: 草稿故事数
range: 0-5
- field: activeStories
note: 激活故事数
range: 10-20
- field: changingStories
note: 变更中故事数
range: 0-3
- field: reviewingStories
note: 评审中故事数
range: 0-2
- field: finishedStories
note: 已完成故事数
range: 5-15
- field: closedStories
note: 已关闭故事数
range: 0-5
- field: totalStories
note: 总故事数
range: 20-40
- field: unresolvedBugs
note: 未解决Bug数
range: 0-10
- field: closedBugs
note: 已关闭Bug数
range: 0-15
- field: fixedBugs
note: 已修复Bug数
range: 0-20
- field: totalBugs
note: 总Bug数
range: 0-30
- field: plans
note: 计划数
range: 0-5
- field: releases
note: 发布数
range: 0-8
- field: createdBy
note: 创建者
range: admin{7},user1{2},user2{1}
- field: createdDate
note: 创建时间
range: (-180d)-(-1d):10d
type: timestamp
format: YYYY-MM-DD hh:mm:ss
- field: createdVersion
note: 创建版本
range: ''
- field: closedDate
note: 关闭日期
range: '[]{7},(-30d)-(-1d):5d{3}'
type: timestamp
format: YYYY-MM-DD
- field: order
note: 排序
range: 1-10
- field: vision
note: 视图
range: rnd
- field: deleted
note: 是否删除
range: '0'
@@ -0,0 +1,20 @@
---
title: 用户表测试数据
desc: 用于测试 getExportData 方法的用户数据
fields:
- field: id
note: 用户ID
range: 1-10
- field: account
note: 账号
range: admin,user1,user2,user3,user4,user5,user6,user7,user8,user9
- field: realname
note: 真实姓名
range: 管理员,用户1,用户2,用户3,用户4,用户5,用户6,用户7,用户8,用户9
- field: role
note: 角色
range: admin,dev{3},qa{2},pm{2},po{2}
- field: deleted
note: 是否删除
range: '0'