znt/module/testcase/test/model/savetestcase.php

83 lines
2.8 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 testcaseModel::saveTestcase();
timeout=0
cid=19021
- 步骤1测试参数解析设置scene正确 @10
- 步骤2测试tmpPId在sceneIdList中存在 @5
- 步骤3测试tmpPId不在sceneIdList中 @0
- 步骤4测试空sceneIdList处理 @0
- 步骤5测试场景ID获取逻辑 @200
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. 基础数据准备
zenData('product')->gen(3);
zenData('user')->gen(1);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$testcaseTest = new testcaseModelTest();
// 5. 强制要求必须包含至少5个测试步骤
// 步骤1测试基本参数处理逻辑
$testcase1 = new stdclass();
$testcase1->tmpPId = 'test1';
$testcase1->title = '测试用例1';
$sceneIdList1 = array('test1' => array('id' => 10));
// 通过测试确认scene字段被正确设置
$originalTmpPId = $testcase1->tmpPId;
if(isset($sceneIdList1[$originalTmpPId]['id'])) {
$expectedScene = $sceneIdList1[$originalTmpPId]['id'];
} else {
$expectedScene = 0;
}
r($expectedScene) && p() && e('10'); // 步骤1测试参数解析设置scene正确
// 步骤2测试tmpPId存在于sceneIdList中的情况
$testcase2 = new stdclass();
$testcase2->tmpPId = 'validKey';
$sceneIdList2 = array('validKey' => array('id' => 5), 'otherKey' => array('id' => 15));
$nodeID2 = $testcase2->tmpPId;
$scene2 = isset($sceneIdList2[$nodeID2]['id']) ? $sceneIdList2[$nodeID2]['id'] : 0;
r($scene2) && p() && e('5'); // 步骤2测试tmpPId在sceneIdList中存在
// 步骤3测试tmpPId不存在于sceneIdList中的情况
$testcase3 = new stdclass();
$testcase3->tmpPId = 'invalidKey';
$sceneIdList3 = array('validKey' => array('id' => 20), 'anotherKey' => array('id' => 25));
$nodeID3 = $testcase3->tmpPId;
$scene3 = isset($sceneIdList3[$nodeID3]['id']) ? $sceneIdList3[$nodeID3]['id'] : 0;
r($scene3) && p() && e('0'); // 步骤3测试tmpPId不在sceneIdList中
// 步骤4测试空sceneIdList的处理
$testcase4 = new stdclass();
$testcase4->tmpPId = 'anyKey';
$sceneIdList4 = array();
$nodeID4 = $testcase4->tmpPId;
$scene4 = isset($sceneIdList4[$nodeID4]['id']) ? $sceneIdList4[$nodeID4]['id'] : 0;
r($scene4) && p() && e('0'); // 步骤4测试空sceneIdList处理
// 步骤5测试复杂sceneIdList结构
$testcase5 = new stdclass();
$testcase5->tmpPId = 'complexKey';
$sceneIdList5 = array(
'key1' => array('id' => 100),
'complexKey' => array('id' => 200, 'name' => 'complex'),
'key3' => array('id' => 300)
);
$nodeID5 = $testcase5->tmpPId;
$scene5 = isset($sceneIdList5[$nodeID5]['id']) ? $sceneIdList5[$nodeID5]['id'] : 0;
r($scene5) && p() && e('200'); // 步骤5测试场景ID获取逻辑