+ [misc] Add unit tests for testcaseModel::processStepsChanged() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1992,4 +1992,80 @@ class testcaseTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test processStepsChanged method.
|
||||
*
|
||||
* @param string $testType
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function processStepsChangedTest(string $testType): bool
|
||||
{
|
||||
// 创建测试用例对象
|
||||
$case = new stdclass();
|
||||
|
||||
// 创建旧步骤数据
|
||||
$oldStep = array();
|
||||
$oldStep1 = new stdclass();
|
||||
$oldStep1->desc = '步骤描述1';
|
||||
$oldStep1->expect = '期望结果1';
|
||||
$oldStep1->type = 'step';
|
||||
$oldStep[] = $oldStep1;
|
||||
|
||||
$oldStep2 = new stdclass();
|
||||
$oldStep2->desc = '步骤描述2';
|
||||
$oldStep2->expect = '期望结果2';
|
||||
$oldStep2->type = 'group';
|
||||
$oldStep[] = $oldStep2;
|
||||
|
||||
// 根据测试类型设置不同的新步骤数据
|
||||
switch($testType)
|
||||
{
|
||||
case 'same_content':
|
||||
// 相同内容
|
||||
$case->steps = array('步骤描述1', '步骤描述2');
|
||||
$case->expects = array('期望结果1', '期望结果2');
|
||||
$case->stepType = array('step', 'group');
|
||||
break;
|
||||
|
||||
case 'different_count':
|
||||
// 不同数量
|
||||
$case->steps = array('步骤描述1');
|
||||
$case->expects = array('期望结果1');
|
||||
$case->stepType = array('step');
|
||||
break;
|
||||
|
||||
case 'different_desc':
|
||||
// 不同描述
|
||||
$case->steps = array('步骤描述1修改', '步骤描述2');
|
||||
$case->expects = array('期望结果1', '期望结果2');
|
||||
$case->stepType = array('step', 'group');
|
||||
break;
|
||||
|
||||
case 'different_expect':
|
||||
// 不同期望
|
||||
$case->steps = array('步骤描述1', '步骤描述2');
|
||||
$case->expects = array('期望结果1修改', '期望结果2');
|
||||
$case->stepType = array('step', 'group');
|
||||
break;
|
||||
|
||||
case 'different_type':
|
||||
// 不同类型
|
||||
$case->steps = array('步骤描述1', '步骤描述2');
|
||||
$case->expects = array('期望结果1', '期望结果2');
|
||||
$case->stepType = array('item', 'group');
|
||||
break;
|
||||
}
|
||||
|
||||
// 使用反射来调用保护方法
|
||||
$reflection = new ReflectionClass($this->objectModel);
|
||||
$method = $reflection->getMethod('processStepsChanged');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$result = $method->invoke($this->objectModel, $case, $oldStep);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 testcaseModel::processStepsChanged();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:相同内容 @0
|
||||
- 步骤2:不同数量 @1
|
||||
- 步骤3:不同描述 @1
|
||||
- 步骤4:不同期望 @1
|
||||
- 步骤5:不同类型 @1
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/testcase.unittest.class.php';
|
||||
|
||||
// 2. zendata数据准备(根据需要配置)
|
||||
$table = zenData('casestep');
|
||||
$table->id->range('1-10');
|
||||
$table->case->range('1-3');
|
||||
$table->version->range('1');
|
||||
$table->type->range('step,group,item');
|
||||
$table->desc->range('步骤描述1,步骤描述2,步骤描述3');
|
||||
$table->expect->range('期望结果1,期望结果2,期望结果3');
|
||||
$table->gen(6);
|
||||
|
||||
// 3. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 4. 创建测试实例(变量名与模块名一致)
|
||||
$testcaseTest = new testcaseTest();
|
||||
|
||||
// 5. 🔴 强制要求:必须包含至少5个测试步骤
|
||||
r($testcaseTest->processStepsChangedTest('same_content')) && p() && e('0'); // 步骤1:相同内容
|
||||
r($testcaseTest->processStepsChangedTest('different_count')) && p() && e('1'); // 步骤2:不同数量
|
||||
r($testcaseTest->processStepsChangedTest('different_desc')) && p() && e('1'); // 步骤3:不同描述
|
||||
r($testcaseTest->processStepsChangedTest('different_expect')) && p() && e('1'); // 步骤4:不同期望
|
||||
r($testcaseTest->processStepsChangedTest('different_type')) && p() && e('1'); // 步骤5:不同类型
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: 测试用例步骤数据
|
||||
desc: 用于测试processStepsChanged方法的测试用例步骤数据
|
||||
author: Claude
|
||||
version: 1.0
|
||||
|
||||
fields:
|
||||
- field: id
|
||||
note: 步骤ID
|
||||
range: 1-10
|
||||
|
||||
- field: parent
|
||||
note: 父步骤ID
|
||||
range: 0
|
||||
|
||||
- field: case
|
||||
note: 测试用例ID
|
||||
range: 1-3
|
||||
|
||||
- field: version
|
||||
note: 版本号
|
||||
range: 1
|
||||
|
||||
- field: type
|
||||
note: 步骤类型
|
||||
range: step{4},group{2},item{4}
|
||||
|
||||
- field: desc
|
||||
note: 步骤描述
|
||||
range: '步骤描述1,步骤描述2,步骤描述3,步骤描述4,步骤描述5'
|
||||
|
||||
- field: expect
|
||||
note: 期望结果
|
||||
range: '期望结果1,期望结果2,期望结果3,期望结果4,期望结果5'
|
||||
Reference in New Issue
Block a user