+ [misc] Add unit tests for aiModel::standardizeParams() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -308,4 +308,23 @@ class aiTest
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test standardizeParams method.
|
||||
*
|
||||
* @param mixed $data
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function standardizeParamsTest($data = null)
|
||||
{
|
||||
/* Using reflection to call private static method */
|
||||
$reflection = new ReflectionClass($this->objectModel);
|
||||
$method = $reflection->getMethod('standardizeParams');
|
||||
$method->setAccessible(true);
|
||||
$result = $method->invoke(null, $data);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 aiModel::standardizeParams();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 步骤1:正常对象参数转换
|
||||
- 属性camel_case_property @value1
|
||||
- 属性another_camel_case @value2
|
||||
- 步骤2:空对象参数处理 @0
|
||||
- 步骤3:单个属性对象转换属性user_name @test
|
||||
- 步骤4:包含数字的属性转换属性property123_name @number
|
||||
- 步骤5:复杂驼峰命名转换属性very_long_property_name_with_many_words @complex
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/ai.unittest.class.php';
|
||||
|
||||
// 2. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 3. 创建测试实例(变量名与模块名一致)
|
||||
$aiTest = new aiTest();
|
||||
|
||||
// 4. 🔴 强制要求:必须包含至少5个测试步骤
|
||||
// 步骤1:正常对象参数转换 - 检查结果是否为对象
|
||||
$normalData = new stdClass();
|
||||
$normalData->camelCaseProperty = 'value1';
|
||||
$normalData->anotherCamelCase = 'value2';
|
||||
r($aiTest->standardizeParamsTest($normalData)) && p('camel_case_property,another_camel_case') && e('value1,value2'); // 步骤1:正常对象参数转换
|
||||
|
||||
// 步骤2:空对象参数处理 - 检查属性数量
|
||||
$emptyData = new stdClass();
|
||||
$result2 = $aiTest->standardizeParamsTest($emptyData);
|
||||
r(count(get_object_vars($result2))) && p() && e(0); // 步骤2:空对象参数处理
|
||||
|
||||
// 步骤3:单个属性对象转换
|
||||
$singleData = new stdClass();
|
||||
$singleData->userName = 'test';
|
||||
r($aiTest->standardizeParamsTest($singleData)) && p('user_name') && e('test'); // 步骤3:单个属性对象转换
|
||||
|
||||
// 步骤4:包含数字的属性转换
|
||||
$numberData = new stdClass();
|
||||
$numberData->property123Name = 'number';
|
||||
r($aiTest->standardizeParamsTest($numberData)) && p('property123_name') && e('number'); // 步骤4:包含数字的属性转换
|
||||
|
||||
// 步骤5:复杂驼峰命名转换
|
||||
$complexData = new stdClass();
|
||||
$complexData->veryLongPropertyNameWithManyWords = 'complex';
|
||||
r($aiTest->standardizeParamsTest($complexData)) && p('very_long_property_name_with_many_words') && e('complex'); // 步骤5:复杂驼峰命名转换
|
||||
Reference in New Issue
Block a user