#!/usr/bin/env php 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:缺少字段处理