znt/module/task/test/zen/buildeffortforstart.php

127 lines
3.8 KiB
PHP
Raw Permalink Normal View History

#!/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缺少字段处理