106 lines
3 KiB
PHP
Executable file
106 lines
3 KiB
PHP
Executable file
#!/usr/bin/env php
|
|
<?php
|
|
|
|
/**
|
|
|
|
title=测试 testcaseZen::processCasesForBrowse();
|
|
timeout=0
|
|
cid=0
|
|
|
|
- 步骤1:空数组输入 @0
|
|
- 步骤2:无场景的用例
|
|
- 第0条的id属性 @case_1
|
|
- 第0条的parent属性 @0
|
|
- 第0条的isScene属性 @~~
|
|
- 步骤3:有场景的用例 @3
|
|
- 步骤4:HTML转义标题处理第0条的title属性 @测试用例5<html>
|
|
- 步骤5:场景被删除的边界情况
|
|
- 第0条的id属性 @case_6
|
|
- 第0条的parent属性 @0
|
|
|
|
*/
|
|
|
|
// 1. 导入依赖(路径固定,不可修改)
|
|
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
|
include dirname(__FILE__, 2) . '/lib/testcasezen.unittest.class.php';
|
|
|
|
// 2. zendata数据准备(根据需要配置)
|
|
$scene = zenData('scene');
|
|
$scene->id->range('1-5');
|
|
$scene->product->range('1{5}');
|
|
$scene->title->range('场景1,场景2,场景3,场景4,场景5');
|
|
$scene->parent->range('0,0,1,1,0');
|
|
$scene->grade->range('1,1,2,2,1');
|
|
$scene->path->range(',1,;,2,;,1,3,;,1,4,;,5,');
|
|
$scene->deleted->range('0{5}');
|
|
$scene->gen(5);
|
|
|
|
// 3. 用户登录(选择合适角色)
|
|
su('admin');
|
|
|
|
// 4. 创建测试实例(变量名与模块名一致)
|
|
$testcaseTest = new testcaseZenTest();
|
|
|
|
// 5. 强制要求:必须包含至少5个测试步骤
|
|
|
|
// 步骤1:空数组输入
|
|
$emptyCases = array();
|
|
r($testcaseTest->processCasesForBrowseTest($emptyCases)) && p() && e('0'); // 步骤1:空数组输入
|
|
|
|
// 步骤2:无场景的用例
|
|
$case1 = new stdClass();
|
|
$case1->id = 1;
|
|
$case1->title = '测试用例1';
|
|
$case1->scene = 0;
|
|
$case1->status = 'normal';
|
|
$case1->pri = 1;
|
|
|
|
$case2 = new stdClass();
|
|
$case2->id = 2;
|
|
$case2->title = '测试用例2';
|
|
$case2->scene = 0;
|
|
$case2->status = 'wait';
|
|
$case2->pri = 2;
|
|
|
|
$casesWithoutScene = array($case1, $case2);
|
|
r($testcaseTest->processCasesForBrowseTest($casesWithoutScene)) && p('0:id;0:parent;0:isScene') && e('case_1;0;~~'); // 步骤2:无场景的用例
|
|
|
|
// 步骤3:有场景的用例
|
|
$case3 = new stdClass();
|
|
$case3->id = 3;
|
|
$case3->title = '测试用例3';
|
|
$case3->scene = 1;
|
|
$case3->status = 'normal';
|
|
$case3->pri = 1;
|
|
|
|
$case4 = new stdClass();
|
|
$case4->id = 4;
|
|
$case4->title = '测试用例4';
|
|
$case4->scene = 1;
|
|
$case4->status = 'wait';
|
|
$case4->pri = 2;
|
|
|
|
$casesWithScene = array($case3, $case4);
|
|
r(count($testcaseTest->processCasesForBrowseTest($casesWithScene))) && p() && e('3'); // 步骤3:有场景的用例
|
|
|
|
// 步骤4:HTML转义标题处理
|
|
$case5 = new stdClass();
|
|
$case5->id = 5;
|
|
$case5->title = '测试用例5<html>';
|
|
$case5->scene = 0;
|
|
$case5->status = 'normal';
|
|
$case5->pri = 1;
|
|
|
|
$casesWithHtml = array($case5);
|
|
r($testcaseTest->processCasesForBrowseTest($casesWithHtml)) && p('0:title') && e('测试用例5<html>'); // 步骤4:HTML转义标题处理
|
|
|
|
// 步骤5:场景被删除的边界情况
|
|
$case6 = new stdClass();
|
|
$case6->id = 6;
|
|
$case6->title = '测试用例6';
|
|
$case6->scene = 99;
|
|
$case6->status = 'normal';
|
|
$case6->pri = 1;
|
|
|
|
$casesWithDeletedScene = array($case6);
|
|
r($testcaseTest->processCasesForBrowseTest($casesWithDeletedScene)) && p('0:id;0:parent') && e('case_6;0'); // 步骤5:场景被删除的边界情况
|