+ [misc] Add unit tests for programZen::buildProgramForCreate() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+121
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 programZen::buildProgramForCreate();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 执行programTest模块的buildProgramForCreateTest方法,参数是$postData1
|
||||
- 属性name @测试项目集1
|
||||
- 属性type @program
|
||||
- 属性begin @2024-01-01
|
||||
- 属性end @2024-12-31
|
||||
- 属性budget @100000
|
||||
- 属性budgetUnit @CNY
|
||||
- 属性openedBy @admin
|
||||
- 执行programTest模块的buildProgramForCreateTest方法,参数是$postData2
|
||||
- 属性name @长期项目集
|
||||
- 属性type @program
|
||||
- 属性begin @2024-01-01
|
||||
- 属性end @2059-12-31
|
||||
- 执行programTest模块的buildProgramForCreateTest方法,参数是$postData3
|
||||
- 属性name @开放项目集
|
||||
- 属性acl @open
|
||||
- 属性whitelist @~~
|
||||
- 执行programTest模块的buildProgramForCreateTest方法,参数是$postData4
|
||||
- 属性name @私有项目集
|
||||
- 属性acl @private
|
||||
- 属性whitelist @admin
|
||||
- 执行programTest模块的buildProgramForCreateTest方法,参数是$postData5
|
||||
- 属性name @最小配置项目集
|
||||
- 属性type @program
|
||||
- 属性code @~~
|
||||
- 属性openedBy @admin
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/program.unittest.class.php';
|
||||
|
||||
// 2. zendata数据准备(根据需要配置)
|
||||
$table = zenData('user');
|
||||
$table->account->range('admin,user1,user2,user3,pm1');
|
||||
$table->realname->range('管理员,用户1,用户2,用户3,项目经理1');
|
||||
$table->gen(5);
|
||||
|
||||
// 3. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 4. 创建测试实例(变量名与模块名一致)
|
||||
$programTest = new programTest();
|
||||
|
||||
// 5. 强制要求:必须包含至少5个测试步骤
|
||||
|
||||
// 步骤1:基本的创建项目集数据
|
||||
$postData1 = array(
|
||||
'name' => '测试项目集1',
|
||||
'begin' => '2024-01-01',
|
||||
'end' => '2024-12-31',
|
||||
'budget' => '100000',
|
||||
'budgetUnit'=> 'CNY',
|
||||
'desc' => '这是项目集描述',
|
||||
'acl' => 'private',
|
||||
'whitelist' => array('admin', 'user1'),
|
||||
'uid' => 'test123'
|
||||
);
|
||||
r($programTest->buildProgramForCreateTest($postData1)) && p('name,type,begin,end,budget,budgetUnit,openedBy') && e('测试项目集1,program,2024-01-01,2024-12-31,100000,CNY,admin');
|
||||
|
||||
// 步骤2:长期项目集(longTime=1)
|
||||
$postData2 = array(
|
||||
'name' => '长期项目集',
|
||||
'begin' => '2024-01-01',
|
||||
'end' => '2024-12-31',
|
||||
'longTime' => 1,
|
||||
'budget' => '500000',
|
||||
'budgetUnit'=> 'USD',
|
||||
'desc' => '长期项目集',
|
||||
'acl' => 'private',
|
||||
'whitelist' => array('pm1'),
|
||||
'uid' => 'test456'
|
||||
);
|
||||
r($programTest->buildProgramForCreateTest($postData2)) && p('name,type,begin,end') && e('长期项目集,program,2024-01-01,2059-12-31');
|
||||
|
||||
// 步骤3:开放权限的项目集(acl=open)
|
||||
$postData3 = array(
|
||||
'name' => '开放项目集',
|
||||
'begin' => '2024-03-01',
|
||||
'end' => '2024-09-30',
|
||||
'budget' => '200000',
|
||||
'budgetUnit'=> 'EUR',
|
||||
'desc' => '开放权限项目集',
|
||||
'acl' => 'open',
|
||||
'whitelist' => array('user1', 'user2', 'user3'),
|
||||
'uid' => 'test789'
|
||||
);
|
||||
r($programTest->buildProgramForCreateTest($postData3)) && p('name,acl,whitelist') && e('开放项目集,open,~~');
|
||||
|
||||
// 步骤4:私有权限的项目集(acl=private)
|
||||
$postData4 = array(
|
||||
'name' => '私有项目集',
|
||||
'begin' => '2024-04-01',
|
||||
'end' => '2024-10-31',
|
||||
'budget' => '150000',
|
||||
'budgetUnit'=> 'CNY',
|
||||
'desc' => '私有权限项目集',
|
||||
'acl' => 'private',
|
||||
'whitelist' => array('admin'),
|
||||
'uid' => 'test111'
|
||||
);
|
||||
r($programTest->buildProgramForCreateTest($postData4)) && p('name,acl,whitelist') && e('私有项目集,private,admin');
|
||||
|
||||
// 步骤5:最小必填字段配置
|
||||
$postData5 = array(
|
||||
'name' => '最小配置项目集',
|
||||
'begin' => '2024-06-01',
|
||||
'end' => '2024-06-30',
|
||||
'uid' => 'test222'
|
||||
);
|
||||
r($programTest->buildProgramForCreateTest($postData5)) && p('name,type,code,openedBy') && e('最小配置项目集,program,~~,admin');
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
title: 用户数据
|
||||
desc: 用于buildProgramForCreate测试的用户数据
|
||||
author: AI
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 用户ID
|
||||
range: 1-10
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
|
||||
- field: account
|
||||
note: 用户账号
|
||||
range: admin,user1,user2,user3,pm1,pm2,dev1,dev2,test1,test2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
|
||||
- field: password
|
||||
note: 用户密码
|
||||
range: 1-10
|
||||
format: "e10adc3949ba59abbe56e057f20f883e"
|
||||
|
||||
- field: realname
|
||||
note: 真实姓名
|
||||
range: 管理员,用户1,用户2,用户3,项目经理1,项目经理2,开发1,开发2,测试1,测试2
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
|
||||
- field: role
|
||||
note: 用户角色
|
||||
range: others{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
|
||||
- field: dept
|
||||
note: 部门ID
|
||||
range: 1-5
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
|
||||
- field: gender
|
||||
note: 性别
|
||||
range: m{5},f{5}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
|
||||
- field: email
|
||||
note: 邮箱
|
||||
range: 1-10
|
||||
format: "test%d@example.com"
|
||||
|
||||
- field: join
|
||||
note: 入职日期
|
||||
range: 2020-01-01,2021-01-01,2022-01-01,2023-01-01,2024-01-01{6}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
|
||||
- field: deleted
|
||||
note: 删除标志
|
||||
range: 0{10}
|
||||
prefix: ""
|
||||
postfix: ""
|
||||
loop: 0
|
||||
format: ""
|
||||
Reference in New Issue
Block a user