+ [misc] Add unit tests for productZen::getProducts4DropMenu() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -2723,4 +2723,34 @@ class productTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getProducts4DropMenu method.
|
||||
*
|
||||
* @param string $shadow
|
||||
* @param string $module
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
public function getProducts4DropMenuTest(string $shadow = '0', string $module = '')
|
||||
{
|
||||
global $tester;
|
||||
|
||||
// 创建productZen实例并初始化相关模型
|
||||
$productZen = new productZen();
|
||||
$productZen->loadModel('product');
|
||||
$productZen->loadModel('workflow');
|
||||
$productZen->loadModel('feedback');
|
||||
$productZen->config = $tester->config;
|
||||
$productZen->app = $tester->app;
|
||||
$productZen->session = $tester->session;
|
||||
|
||||
$method = $this->objectZen->getMethod('getProducts4DropMenu');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$result = $method->invokeArgs($productZen, array($shadow, $module));
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return is_array($result) ? count($result) : 0;
|
||||
}
|
||||
}
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 productZen::getProducts4DropMenu();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:正常情况获取产品下拉菜单数据(不包含影子产品) @8
|
||||
- 步骤2:获取所有产品包括影子产品 @10
|
||||
- 步骤3:指定module参数 @8
|
||||
- 步骤4:正常参数测试 @8
|
||||
- 步骤5:边界参数测试 @10
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/product.unittest.class.php';
|
||||
|
||||
// 2. zendata数据准备
|
||||
$product = zenData('product');
|
||||
$product->id->range('1-10');
|
||||
$product->name->range('产品A,产品B,产品C,产品D,产品E,Shadow产品,Workflow产品,Feedback产品,Project产品,Normal产品');
|
||||
$product->code->range('PRODA,PRODB,PRODC,PRODD,PRODE,SHADOWS,WORKFLOW,FEEDBACK,PROJECT,NORMAL');
|
||||
$product->shadow->range('0{8},1{2}');
|
||||
$product->status->range('normal{7},closed{3}');
|
||||
$product->type->range('normal');
|
||||
$product->acl->range('open');
|
||||
$product->vision->range('rnd');
|
||||
$product->deleted->range('0');
|
||||
$product->gen(10);
|
||||
|
||||
$project = zenData('project');
|
||||
$project->id->range('1-3');
|
||||
$project->name->range('项目A,项目B,项目C');
|
||||
$project->status->range('doing');
|
||||
$project->type->range('project');
|
||||
$project->deleted->range('0');
|
||||
$project->gen(3);
|
||||
|
||||
$projectproduct = zenData('projectproduct');
|
||||
$projectproduct->project->range('1-3');
|
||||
$projectproduct->product->range('1-3');
|
||||
$projectproduct->gen(3);
|
||||
|
||||
// 3. 用户登录
|
||||
su('admin');
|
||||
|
||||
// 4. 创建测试实例
|
||||
$productTest = new productTest();
|
||||
|
||||
// 5. 执行测试步骤 - 检查结果数量
|
||||
r($productTest->getProducts4DropMenuTest('0', '')) && p() && e('8'); // 步骤1:正常情况获取产品下拉菜单数据(不包含影子产品)
|
||||
r($productTest->getProducts4DropMenuTest('all', '')) && p() && e('10'); // 步骤2:获取所有产品包括影子产品
|
||||
r($productTest->getProducts4DropMenuTest('0', 'testmodule')) && p() && e('8'); // 步骤3:指定module参数
|
||||
r($productTest->getProducts4DropMenuTest('0', '')) && p() && e('8'); // 步骤4:正常参数测试
|
||||
r($productTest->getProducts4DropMenuTest('all', 'any')) && p() && e('10'); // 步骤5:边界参数测试
|
||||
@@ -0,0 +1,134 @@
|
||||
---
|
||||
title: 产品下拉菜单测试数据
|
||||
desc: 为getProducts4DropMenu方法生成测试数据
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 产品ID
|
||||
range: 1-10
|
||||
|
||||
- field: program
|
||||
note: 项目集ID
|
||||
range: 1-3
|
||||
|
||||
- field: name
|
||||
note: 产品名称
|
||||
range: "产品A,产品B,产品C,产品D,产品E,Shadow产品,Workflow产品,Feedback产品,Project产品,Normal产品"
|
||||
|
||||
- field: code
|
||||
note: 产品代码
|
||||
range: "PRODA,PRODB,PRODC,PRODD,PRODE,SHADOWS,WORKFLOW,FEEDBACK,PROJECT,NORMAL"
|
||||
|
||||
- field: shadow
|
||||
note: 影子产品标识
|
||||
range: 0{8},1{2}
|
||||
|
||||
- field: bind
|
||||
note: 绑定标识
|
||||
range: "0"
|
||||
|
||||
- field: line
|
||||
note: 产品线ID
|
||||
range: 0-2
|
||||
|
||||
- field: type
|
||||
note: 产品类型
|
||||
range: "normal{8},branch{2}"
|
||||
|
||||
- field: status
|
||||
note: 产品状态
|
||||
range: "normal{7},closed{3}"
|
||||
|
||||
- field: subStatus
|
||||
note: 子状态
|
||||
range: ""
|
||||
|
||||
- field: desc
|
||||
note: 产品描述
|
||||
range: "这是产品A的描述,这是产品B的描述,这是产品C的描述,这是产品D的描述,这是产品E的描述,这是Shadow产品的描述,这是Workflow产品的描述,这是Feedback产品的描述,这是Project产品的描述,这是Normal产品的描述"
|
||||
|
||||
- field: PO
|
||||
note: 产品负责人
|
||||
range: "admin,user1,user2,user3"
|
||||
|
||||
- field: QD
|
||||
note: 测试负责人
|
||||
range: "admin,user1,user2"
|
||||
|
||||
- field: RD
|
||||
note: 发布负责人
|
||||
range: "admin,user1,user2"
|
||||
|
||||
- field: feedback
|
||||
note: 反馈负责人
|
||||
range: "admin,user1"
|
||||
|
||||
- field: ticket
|
||||
note: 工单负责人
|
||||
range: "admin"
|
||||
|
||||
- field: workflowGroup
|
||||
note: 工作流组
|
||||
range: 0{8},1{2}
|
||||
|
||||
- field: acl
|
||||
note: 访问控制
|
||||
range: "open{6},private{2},custom{2}"
|
||||
|
||||
- field: groups
|
||||
note: 用户组
|
||||
range: "1,2,3,1,2,2,3,1,2,3"
|
||||
|
||||
- field: whitelist
|
||||
note: 白名单
|
||||
range: "admin,user1,admin,user2,admin,user1,user2,admin,user1,admin"
|
||||
|
||||
- field: reviewer
|
||||
note: 评审人员
|
||||
range: "admin,user1,admin,user2,admin,user1,user2,admin,user1,admin"
|
||||
|
||||
- field: PMT
|
||||
note: PMT成员
|
||||
range: "admin,user1,admin,user2,admin,user1,user2,admin,user1,admin"
|
||||
|
||||
- field: draftEpics
|
||||
note: 草稿史诗数量
|
||||
range: 0-5
|
||||
|
||||
- field: activeEpics
|
||||
note: 激活史诗数量
|
||||
range: 0-8
|
||||
|
||||
- field: changingEpics
|
||||
note: 变更史诗数量
|
||||
range: 0-3
|
||||
|
||||
- field: order
|
||||
note: 排序
|
||||
range: 10-50:5
|
||||
|
||||
- field: vision
|
||||
note: 视角
|
||||
range: "rnd"
|
||||
|
||||
- field: createdBy
|
||||
note: 创建者
|
||||
range: "admin,user1,user2"
|
||||
|
||||
- field: createdDate
|
||||
note: 创建时间
|
||||
range: "(-1M)-(0D):1D"
|
||||
format: "YYYY-MM-DD hh:mm:ss"
|
||||
|
||||
- field: editedBy
|
||||
note: 编辑者
|
||||
range: "admin,user1,user2"
|
||||
|
||||
- field: editedDate
|
||||
note: 编辑时间
|
||||
range: "(-1w)-(0D):1D"
|
||||
format: "YYYY-MM-DD hh:mm:ss"
|
||||
|
||||
- field: deleted
|
||||
note: 是否删除
|
||||
range: "0"
|
||||
Reference in New Issue
Block a user