znt/module/testtask/test/zen/processrowspanforgroupcase.php

112 lines
3.6 KiB
PHP
Raw Permalink Normal View History

#!/usr/bin/env php
<?php
/**
title=测试 testtaskZen::processRowspanForGroupCase();
timeout=0
cid=19239
- 步骤1空用例数组测试 @0
- 步骤2多个需求正常处理第一个需求的第一个用例rowspan为2第0条的rowspan属性 @2
- 步骤3单个需求单个用例rowspan为1第0条的rowspan属性 @1
- 步骤4带构建ID的正常处理第0条的rowspan属性 @1
- 步骤5需求ID为0的边界处理第0条的rowspan属性 @1
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/testtaskzen.unittest.class.php';
// 2. zendata数据准备根据需要配置
$storyTable = zenData('story');
$storyTable->id->range('1-10');
$storyTable->title->range('需求1,需求2,需求3,需求4,需求5,需求6,需求7,需求8,需求9,需求10');
$storyTable->deleted->range('0');
$storyTable->gen(10);
$buildTable = zenData('build');
$buildTable->id->range('1-5');
$buildTable->stories->range('1,2,3|2,3,4|3,4,5|4,5,6|5,6,7');
$buildTable->gen(5);
$caseTable = zenData('case');
$caseTable->id->range('1-20');
$caseTable->story->range('1{5},2{3},3{4},4{2},5{1}');
$caseTable->title->range('测试用例1,测试用例2,测试用例3,测试用例4,测试用例5,测试用例6,测试用例7,测试用例8,测试用例9,测试用例10{10}');
$caseTable->gen(15);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$testtaskTest = new testtaskZenTest();
// 5. 🔴 强制要求必须包含至少5个测试步骤
r($testtaskTest->processRowspanForGroupCaseTest(array(), '')) && p() && e('0'); // 步骤1空用例数组测试
// 构造测试数据:多个需求的用例
$cases = array();
$case1 = new stdclass();
$case1->id = 1;
$case1->story = 1;
$case1->title = '测试用例1';
$case1->rowspan = 0;
$cases[] = $case1;
$case2 = new stdclass();
$case2->id = 2;
$case2->story = 1;
$case2->title = '测试用例2';
$case2->rowspan = 0;
$cases[] = $case2;
$case3 = new stdclass();
$case3->id = 3;
$case3->story = 2;
$case3->title = '测试用例3';
$case3->rowspan = 0;
$cases[] = $case3;
r($testtaskTest->processRowspanForGroupCaseTest($cases, '')) && p('0:rowspan') && e('2'); // 步骤2多个需求正常处理第一个需求的第一个用例rowspan为2
// 构造单个需求单个用例的测试数据
$singleCases = array();
$singleCase = new stdclass();
$singleCase->id = 1;
$singleCase->story = 1;
$singleCase->title = '单个测试用例';
$singleCase->rowspan = 0;
$singleCases[] = $singleCase;
r($testtaskTest->processRowspanForGroupCaseTest($singleCases, '')) && p('0:rowspan') && e('1'); // 步骤3单个需求单个用例rowspan为1
// 测试带构建ID的情况
$casesWithBuild = array();
$buildCase1 = new stdclass();
$buildCase1->id = 1;
$buildCase1->story = 1;
$buildCase1->title = '构建测试用例1';
$buildCase1->rowspan = 0;
$casesWithBuild[] = $buildCase1;
$buildCase2 = new stdclass();
$buildCase2->id = 2;
$buildCase2->story = 2;
$buildCase2->title = '构建测试用例2';
$buildCase2->rowspan = 0;
$casesWithBuild[] = $buildCase2;
r($testtaskTest->processRowspanForGroupCaseTest($casesWithBuild, '1')) && p('0:rowspan') && e('1'); // 步骤4带构建ID的正常处理
// 测试需求ID为0的边界情况
$zeroCases = array();
$zeroCase = new stdclass();
$zeroCase->id = 1;
$zeroCase->story = 0;
$zeroCase->title = '无需求用例';
$zeroCase->rowspan = 0;
$zeroCases[] = $zeroCase;
r($testtaskTest->processRowspanForGroupCaseTest($zeroCases, '')) && p('0:rowspan') && e('1'); // 步骤5需求ID为0的边界处理