+ [misc] Add unit tests for productZen::getProductList4Kanban() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -4276,4 +4276,32 @@ class productTest
|
||||
return 'error: ' . $e->getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getProductList4Kanban method.
|
||||
*
|
||||
* @param array $productList
|
||||
* @param array $planList
|
||||
* @param array $projectList
|
||||
* @param array $releaseList
|
||||
* @param array $projectProduct
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getProductList4KanbanTest(array $productList = array(), array $planList = array(), array $projectList = array(), array $releaseList = array(), array $projectProduct = array()): array
|
||||
{
|
||||
// 直接包含zen文件
|
||||
include_once dirname(dirname(__FILE__)) . '/../zen.php';
|
||||
$productZen = new productZen();
|
||||
|
||||
// 使用反射调用protected方法
|
||||
$reflection = new ReflectionClass($productZen);
|
||||
$method = $reflection->getMethod('getProductList4Kanban');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$result = $method->invoke($productZen, $productList, $planList, $projectList, $releaseList, $projectProduct);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 productZen::getProductList4Kanban();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:空参数测试 @0
|
||||
- 步骤2:正常产品列表测试 @1
|
||||
- 步骤3:产品状态过滤测试 @0
|
||||
- 步骤4:包含计划数据测试 @1
|
||||
- 步骤5:项目关联测试 @1
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/product.unittest.class.php';
|
||||
|
||||
// 3. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 4. 创建测试实例(变量名与模块名一致)
|
||||
$productTest = new productTest();
|
||||
|
||||
// 5. 🔴 强制要求:必须包含至少5个测试步骤
|
||||
r($productTest->getProductList4KanbanTest(array(), array(), array(), array(), array())) && p() && e(0); // 步骤1:空参数测试
|
||||
r($productTest->getProductList4KanbanTest(array(1 => (object)array('id' => 1, 'name' => '产品A', 'status' => 'normal', 'program' => 1)), array(), array(), array(), array())) && p() && e(1); // 步骤2:正常产品列表测试
|
||||
r($productTest->getProductList4KanbanTest(array(1 => (object)array('id' => 1, 'name' => '产品A', 'status' => 'closed', 'program' => 1)), array(), array(), array(), array())) && p() && e(0); // 步骤3:产品状态过滤测试
|
||||
r($productTest->getProductList4KanbanTest(array(1 => (object)array('id' => 1, 'name' => '产品A', 'status' => 'normal', 'program' => 1)), array(1 => array((object)array('id' => 1, 'title' => '计划A'))), array(), array(), array())) && p() && e(1); // 步骤4:包含计划数据测试
|
||||
r($productTest->getProductList4KanbanTest(array(1 => (object)array('id' => 1, 'name' => '产品A', 'status' => 'normal', 'program' => 1)), array(), array(1 => (object)array('id' => 1, 'name' => '项目A')), array(), array(1 => array(1 => (object)array('id' => 1, 'name' => '项目A'))))) && p() && e(1); // 步骤5:项目关联测试
|
||||
@@ -0,0 +1,126 @@
|
||||
---
|
||||
title: 产品看板列表测试数据
|
||||
desc: 测试getProductList4Kanban方法的产品数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 产品ID
|
||||
range: 1-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 产品名称
|
||||
range: "产品A,产品B,产品C,产品D,产品E,产品F,产品G,产品H,产品I,产品J"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: code
|
||||
note: 产品代码
|
||||
range: "PA,PB,PC,PD,PE,PF,PG,PH,PI,PJ"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: program
|
||||
note: 项目集ID
|
||||
range: 0,1,2,0,1,2,0,1,2,0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: line
|
||||
note: 产品线ID
|
||||
range: 0,1,1,2,2,0,1,1,2,0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: 产品类型
|
||||
range: normal{8},branch{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: status
|
||||
note: 产品状态
|
||||
range: normal{8},closed{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: 产品描述
|
||||
range: "产品描述1,产品描述2,产品描述3,产品描述4,产品描述5,产品描述6,产品描述7,产品描述8,产品描述9,产品描述10"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: PO
|
||||
note: 产品负责人
|
||||
range: admin{5},user1{3},user2{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: QD
|
||||
note: 测试负责人
|
||||
range: "admin,user1,user2,admin,user1,user2,admin,user1,user2,admin"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: RD
|
||||
note: 发布负责人
|
||||
range: "admin,user1,user2,admin,user1,user2,admin,user1,user2,admin"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: acl
|
||||
note: 访问控制
|
||||
range: open{6},private{4}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdBy
|
||||
note: 创建者
|
||||
range: admin{7},user1{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdDate
|
||||
note: 创建时间
|
||||
range: "2023-01-01 00:00:00,2023-02-01 00:00:00,2023-03-01 00:00:00,2023-04-01 00:00:00,2023-05-01 00:00:00,2023-06-01 00:00:00,2023-07-01 00:00:00,2023-08-01 00:00:00,2023-09-01 00:00:00,2023-10-01 00:00:00"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: order
|
||||
note: 排序
|
||||
range: 1-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: vision
|
||||
note: 视图
|
||||
range: rnd{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
title: 产品计划看板测试数据
|
||||
desc: 测试getProductList4Kanban方法的产品计划数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 计划ID
|
||||
range: 1-15
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: product
|
||||
note: 产品ID
|
||||
range: 1,1,2,2,3,3,4,4,5,5,6,7,8,9,10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: branch
|
||||
note: 分支ID
|
||||
range: 0{15}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: title
|
||||
note: 计划标题
|
||||
range: "计划A1,计划A2,计划B1,计划B2,计划C1,计划C2,计划D1,计划D2,计划E1,计划E2,计划F1,计划G1,计划H1,计划I1,计划J1"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: 计划描述
|
||||
range: "描述A1,描述A2,描述B1,描述B2,描述C1,描述C2,描述D1,描述D2,描述E1,描述E2,描述F1,描述G1,描述H1,描述I1,描述J1"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: begin
|
||||
note: 开始时间
|
||||
range: "2024-01-01,2024-01-15,2024-02-01,2024-02-15,2024-03-01,2024-03-15,2024-04-01,2024-04-15,2024-05-01,2024-05-15,2024-06-01,2024-06-15,2024-07-01,2024-07-15,2024-08-01"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: end
|
||||
note: 结束时间
|
||||
range: "2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: status
|
||||
note: 计划状态
|
||||
range: doing{12},wait{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdBy
|
||||
note: 创建者
|
||||
range: admin{10},user1{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdDate
|
||||
note: 创建时间
|
||||
range: "2023-12-01 00:00:00,2023-12-02 00:00:00,2023-12-03 00:00:00,2023-12-04 00:00:00,2023-12-05 00:00:00,2023-12-06 00:00:00,2023-12-07 00:00:00,2023-12-08 00:00:00,2023-12-09 00:00:00,2023-12-10 00:00:00,2023-12-11 00:00:00,2023-12-12 00:00:00,2023-12-13 00:00:00,2023-12-14 00:00:00,2023-12-15 00:00:00"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{15}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
title: 项目看板测试数据
|
||||
desc: 测试getProductList4Kanban方法的项目数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 项目ID
|
||||
range: 1-12
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 项目名称
|
||||
range: "项目Alpha,项目Beta,项目Gamma,项目Delta,项目Epsilon,项目Zeta,项目Eta,项目Theta,项目Iota,项目Kappa,项目Lambda,项目Mu"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: code
|
||||
note: 项目代码
|
||||
range: "PROJ001,PROJ002,PROJ003,PROJ004,PROJ005,PROJ006,PROJ007,PROJ008,PROJ009,PROJ010,PROJ011,PROJ012"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: type
|
||||
note: 项目类型
|
||||
range: project{10},program{2}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: model
|
||||
note: 项目模型
|
||||
range: scrum{8},waterfall{4}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: status
|
||||
note: 项目状态
|
||||
range: doing{8},wait{2},suspended{1},closed{1}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: budget
|
||||
note: 项目预算
|
||||
range: 100000,150000,200000,250000,300000,350000,400000,450000,500000,550000,600000,650000
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: begin
|
||||
note: 开始时间
|
||||
range: "2024-01-01,2024-01-15,2024-02-01,2024-02-15,2024-03-01,2024-03-15,2024-04-01,2024-04-15,2024-05-01,2024-05-15,2024-06-01,2024-06-15"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: end
|
||||
note: 结束时间
|
||||
range: "2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31,2024-12-31"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: PM
|
||||
note: 项目经理
|
||||
range: admin{6},user1{3},user2{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: PO
|
||||
note: 产品负责人
|
||||
range: admin{6},user1{3},user2{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: QD
|
||||
note: 测试负责人
|
||||
range: admin{6},user1{3},user2{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: RD
|
||||
note: 发布负责人
|
||||
range: admin{6},user1{3},user2{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: acl
|
||||
note: 访问控制
|
||||
range: open{8},private{4}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdBy
|
||||
note: 创建者
|
||||
range: admin{8},user1{4}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdDate
|
||||
note: 创建时间
|
||||
range: "2023-12-01 00:00:00,2023-12-02 00:00:00,2023-12-03 00:00:00,2023-12-04 00:00:00,2023-12-05 00:00:00,2023-12-06 00:00:00,2023-12-07 00:00:00,2023-12-08 00:00:00,2023-12-09 00:00:00,2023-12-10 00:00:00,2023-12-11 00:00:00,2023-12-12 00:00:00"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{12}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: hasProduct
|
||||
note: 是否关联产品
|
||||
range: 1{12}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
@@ -0,0 +1,91 @@
|
||||
---
|
||||
title: 发布看板测试数据
|
||||
desc: 测试getProductList4Kanban方法的发布数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 发布ID
|
||||
range: 1-15
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: product
|
||||
note: 产品ID
|
||||
range: 1,1,2,2,3,3,4,4,5,5,6,7,8,9,10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: branch
|
||||
note: 分支ID
|
||||
range: 0{15}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: name
|
||||
note: 发布名称
|
||||
range: "发布v1.0,发布v1.1,发布v2.0,发布v2.1,发布v3.0,发布v3.1,发布v4.0,发布v4.1,发布v5.0,发布v5.1,发布v6.0,发布v7.0,发布v8.0,发布v9.0,发布v10.0"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: marker
|
||||
note: 里程碑标识
|
||||
range: 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: date
|
||||
note: 发布日期
|
||||
range: "2024-01-15,2024-01-30,2024-02-15,2024-02-28,2024-03-15,2024-03-31,2024-04-15,2024-04-30,2024-05-15,2024-05-31,2024-06-15,2024-06-30,2024-07-15,2024-07-31,2024-08-15"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: status
|
||||
note: 发布状态
|
||||
range: normal{12},terminate{3}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: subStatus
|
||||
note: 子状态
|
||||
range: ""{15}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: desc
|
||||
note: 发布描述
|
||||
range: "发布描述1,发布描述2,发布描述3,发布描述4,发布描述5,发布描述6,发布描述7,发布描述8,发布描述9,发布描述10,发布描述11,发布描述12,发布描述13,发布描述14,发布描述15"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdBy
|
||||
note: 创建者
|
||||
range: admin{10},user1{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: createdDate
|
||||
note: 创建时间
|
||||
range: "2023-12-01 00:00:00,2023-12-02 00:00:00,2023-12-03 00:00:00,2023-12-04 00:00:00,2023-12-05 00:00:00,2023-12-06 00:00:00,2023-12-07 00:00:00,2023-12-08 00:00:00,2023-12-09 00:00:00,2023-12-10 00:00:00,2023-12-11 00:00:00,2023-12-12 00:00:00,2023-12-13 00:00:00,2023-12-14 00:00:00,2023-12-15 00:00:00"
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: 0{15}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
Reference in New Issue
Block a user