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

112 lines
4 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
/**
title=测试 taskZen::checkBatchCreateTask();
timeout=0
cid=18918
- 步骤1正常情况 @1
- 步骤2名称超长属性name[0] @名称长度不能超过255个字符。
- 步骤3工时格式错误属性estimate[0] @『预计』应当是数字。
- 步骤4日期错误属性deadline[0] @『截止日期』应当大于『预计开始』。
- 步骤5负数工时属性estimate[0] @工时不能为负数。
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/taskzen.unittest.class.php';
// 2. 此测试不需要数据库依赖,因为是纯逻辑验证
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$taskTest = new taskZenTest();
// 5. 构造测试数据
// 正常任务数据
$normalTasks = array();
$task1 = new stdClass();
$task1->name = '正常任务1';
$task1->level = 0;
$task1->estimate = 8;
$task1->estStarted = '2024-01-10';
$task1->deadline = '2024-01-20';
$task1->parent = 0;
$task1->execution = 1;
$task1->type = 'devel';
$normalTasks[] = $task1;
$task2 = new stdClass();
$task2->name = '正常任务2';
$task2->level = 0;
$task2->estimate = 4;
$task2->estStarted = '2024-01-12';
$task2->deadline = '2024-01-18';
$task2->parent = 0;
$task2->execution = 1;
$task2->type = 'devel';
$normalTasks[] = $task2;
// 名称超长的任务
$longNameTasks = array();
$longNameTask = new stdClass();
$longNameTask->name = str_repeat('超长任务名称', 50); // 生成超过255字符的名称
$longNameTask->level = 0;
$longNameTask->estimate = 5;
$longNameTask->estStarted = '2024-01-10';
$longNameTask->deadline = '2024-01-15';
$longNameTask->parent = 0;
$longNameTask->execution = 1;
$longNameTask->type = 'devel';
$longNameTasks[] = $longNameTask;
// 预估工时格式错误的任务
$invalidEstimateTasks = array();
$invalidEstimateTask = new stdClass();
$invalidEstimateTask->name = '工时格式错误任务';
$invalidEstimateTask->level = 0;
$invalidEstimateTask->estimate = 'abc'; // 非数字格式
$invalidEstimateTask->estStarted = '2024-01-10';
$invalidEstimateTask->deadline = '2024-01-15';
$invalidEstimateTask->parent = 0;
$invalidEstimateTask->execution = 1;
$invalidEstimateTask->type = 'devel';
$invalidEstimateTasks[] = $invalidEstimateTask;
// 截止日期小于开始日期的任务
$invalidDateTasks = array();
$invalidDateTask = new stdClass();
$invalidDateTask->name = '日期错误任务';
$invalidDateTask->level = 0;
$invalidDateTask->estimate = 6;
$invalidDateTask->estStarted = '2024-01-20';
$invalidDateTask->deadline = '2024-01-10'; // 截止日期小于开始日期
$invalidDateTask->parent = 0;
$invalidDateTask->execution = 1;
$invalidDateTask->type = 'devel';
$invalidDateTasks[] = $invalidDateTask;
// 预估工时为负数的任务
$negativeEstimateTasks = array();
$negativeEstimateTask = new stdClass();
$negativeEstimateTask->name = '负工时任务';
$negativeEstimateTask->level = 0;
$negativeEstimateTask->estimate = -5; // 负数工时
$negativeEstimateTask->estStarted = '2024-01-10';
$negativeEstimateTask->deadline = '2024-01-15';
$negativeEstimateTask->parent = 0;
$negativeEstimateTask->execution = 1;
$negativeEstimateTask->type = 'devel';
$negativeEstimateTasks[] = $negativeEstimateTask;
// 6. 强制要求必须包含至少5个测试步骤
r($taskTest->checkBatchCreateTaskTest(1, $normalTasks)) && p() && e('1'); // 步骤1正常情况
r($taskTest->checkBatchCreateTaskTest(1, $longNameTasks)) && p('name[0]') && e('名称长度不能超过255个字符。'); // 步骤2名称超长
r($taskTest->checkBatchCreateTaskTest(1, $invalidEstimateTasks)) && p('estimate[0]') && e('『预计』应当是数字。'); // 步骤3工时格式错误
r($taskTest->checkBatchCreateTaskTest(1, $invalidDateTasks)) && p('deadline[0]') && e('『截止日期』应当大于『预计开始』。'); // 步骤4日期错误
r($taskTest->checkBatchCreateTaskTest(1, $negativeEstimateTasks)) && p('estimate[0]') && e('工时不能为负数。'); // 步骤5负数工时