127 lines
3.8 KiB
PHP
Executable file
127 lines
3.8 KiB
PHP
Executable file
#!/usr/bin/env php
|
||
<?php
|
||
|
||
/**
|
||
|
||
title=测试 taskZen::buildEffortForStart();
|
||
timeout=0
|
||
cid=18904
|
||
|
||
- 步骤1:普通任务
|
||
- 属性task @1
|
||
- 属性consumed @5
|
||
- 属性left @25
|
||
- 属性work @开始任务测试
|
||
- 属性account @admin
|
||
- 步骤2:团队任务有当前用户
|
||
- 属性task @2
|
||
- 属性consumed @25
|
||
- 属性left @20
|
||
- 属性work @团队任务开始
|
||
- 属性account @admin
|
||
- 步骤3:团队任务无当前用户
|
||
- 属性task @3
|
||
- 属性consumed @14
|
||
- 属性left @30
|
||
- 属性work @非团队成员开始
|
||
- 属性account @admin
|
||
- 步骤4:边界值零
|
||
- 属性task @4
|
||
- 属性consumed @0
|
||
- 属性left @0
|
||
- 属性account @admin
|
||
- 步骤5:缺少字段处理
|
||
- 属性task @5
|
||
- 属性consumed @-8
|
||
- 属性left @15
|
||
- 属性account @admin
|
||
|
||
*/
|
||
|
||
// 1. 导入依赖(路径固定,不可修改)
|
||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||
include dirname(__FILE__, 2) . '/lib/taskzen.unittest.class.php';
|
||
|
||
// 2. zendata数据准备(根据需要配置)
|
||
$task = zenData('task');
|
||
$task->id->range('1-10');
|
||
$task->name->range('测试任务{10}');
|
||
$task->consumed->range('0-20:2');
|
||
$task->left->range('10-50:5');
|
||
$task->gen(10);
|
||
|
||
$team = zenData('taskteam');
|
||
$team->id->range('1-10');
|
||
$team->task->range('2,3');
|
||
$team->account->range('admin,user1,user2');
|
||
$team->consumed->range('5-15:2');
|
||
$team->left->range('10-30:5');
|
||
$team->gen(6);
|
||
|
||
// 3. 用户登录(选择合适角色)
|
||
su('admin');
|
||
|
||
// 4. 创建测试实例(变量名与模块名一致)
|
||
$taskTest = new taskZenTest();
|
||
|
||
// 5. 🔴 强制要求:必须包含至少5个测试步骤
|
||
// 步骤1:普通任务的effort构建
|
||
$oldTask1 = new stdclass();
|
||
$oldTask1->id = 1;
|
||
$oldTask1->consumed = 10;
|
||
$oldTask1->team = array();
|
||
$task1 = new stdclass();
|
||
$task1->id = 1;
|
||
$task1->consumed = 15;
|
||
$task1->left = 25;
|
||
$task1->work = '开始任务测试';
|
||
r($taskTest->buildEffortForStartTest($oldTask1, $task1)) && p('task,consumed,left,work,account') && e('1,5,25,开始任务测试,admin'); // 步骤1:普通任务
|
||
|
||
// 步骤2:团队任务且当前用户在团队中的effort构建
|
||
$taskModel = $taskTest->tester->loadModel('task');
|
||
$oldTask2 = new stdclass();
|
||
$oldTask2->id = 2;
|
||
$oldTask2->consumed = 20;
|
||
$oldTask2->team = $taskModel->getTeamByTask(2);
|
||
$task2 = new stdclass();
|
||
$task2->id = 2;
|
||
$task2->consumed = 30;
|
||
$task2->left = 20;
|
||
$task2->work = '团队任务开始';
|
||
r($taskTest->buildEffortForStartTest($oldTask2, $task2)) && p('task,consumed,left,work,account') && e('2,25,20,团队任务开始,admin'); // 步骤2:团队任务有当前用户
|
||
|
||
// 步骤3:团队任务但当前用户不在团队中的effort构建
|
||
$oldTask3 = new stdclass();
|
||
$oldTask3->id = 3;
|
||
$oldTask3->consumed = 15;
|
||
$oldTask3->team = $taskModel->getTeamByTask(3);
|
||
$task3 = new stdclass();
|
||
$task3->id = 3;
|
||
$task3->consumed = 25;
|
||
$task3->left = 30;
|
||
$task3->work = '非团队成员开始';
|
||
r($taskTest->buildEffortForStartTest($oldTask3, $task3)) && p('task,consumed,left,work,account') && e('3,14,30,非团队成员开始,admin'); // 步骤3:团队任务无当前用户
|
||
|
||
// 步骤4:边界值测试(consumed和left为0)
|
||
$oldTask4 = new stdclass();
|
||
$oldTask4->id = 4;
|
||
$oldTask4->consumed = 0;
|
||
$oldTask4->team = array();
|
||
$task4 = new stdclass();
|
||
$task4->id = 4;
|
||
$task4->consumed = 0;
|
||
$task4->left = 0;
|
||
$task4->work = '';
|
||
r($taskTest->buildEffortForStartTest($oldTask4, $task4)) && p('task,consumed,left,account') && e('4,0,0,admin'); // 步骤4:边界值零
|
||
|
||
// 步骤5:异常输入测试(缺少部分字段)
|
||
$oldTask5 = new stdclass();
|
||
$oldTask5->id = 5;
|
||
$oldTask5->consumed = 8;
|
||
$oldTask5->team = array();
|
||
$task5 = new stdclass();
|
||
$task5->id = 5;
|
||
// 缺少consumed字段,应使用默认值0
|
||
$task5->left = 15;
|
||
$task5->work = '';
|
||
r($taskTest->buildEffortForStartTest($oldTask5, $task5)) && p('task,consumed,left,account') && e('5,-8,15,admin'); // 步骤5:缺少字段处理
|