From f9d0ef9beb2b42bc974ce9789435d4885e09b0e3 Mon Sep 17 00:00:00 2001 From: liugang Date: Fri, 3 Oct 2025 14:44:34 +0800 Subject: [PATCH] * [misc] Fix unit tests for apiModel::createStruct() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/api/test/model/createstruct.php | 66 ++++++++++---------------- 1 file changed, 25 insertions(+), 41 deletions(-) diff --git a/module/api/test/model/createstruct.php b/module/api/test/model/createstruct.php index eb34f9e0a6..a4afe769d6 100755 --- a/module/api/test/model/createstruct.php +++ b/module/api/test/model/createstruct.php @@ -1,5 +1,12 @@ #!/usr/bin/env php gen(5); +zenData('apistruct')->gen(0); +zenData('apistruct_spec')->gen(0); +zenData('action')->gen(0); /** @@ -7,73 +14,50 @@ title=测试 apiModel::createStruct(); timeout=0 cid=0 -- 测试步骤1:测试正常添加数据结构 @1 -- 测试步骤2:测试结构名称为空时添加数据结构 @0 -- 测试步骤3:测试params字段为空时添加数据结构 @0 -- 测试步骤4:测试边界值和特殊字符处理 @1 -- 测试步骤5:测试复杂数据结构创建 @1 +- 测试正常创建数据结构 @1 +- 测试结构名称为空时创建数据结构 @0 +- 测试结构名称为空的错误提示信息第name条的0属性 @『结构名称』不能为空。 +- 测试params字段为空时创建数据结构 @0 +- 测试params字段为空的错误提示信息第params条的0属性 @『参数』不能为空。 +- 测试创建复杂数据结构 @1 */ -include dirname(__FILE__, 5) . '/test/lib/init.php'; -su('admin'); - -// 数据准备 -$doclib = zenData('doclib'); -$doclib->id->range('1-5'); -$doclib->name->range('API文档库1,API文档库2,API文档库3,API文档库4,API文档库5'); -$doclib->type->range('api{5}'); -$doclib->product->range('0{5}'); -$doclib->project->range('0{5}'); -$doclib->gen(5); - -zenData('apistruct')->gen(0); -zenData('apistruct_spec')->gen(0); -zenData('action')->gen(0); - global $tester; $tester->loadModel('api'); -// 测试步骤1:测试正常添加数据结构 +// 测试步骤1:正常创建数据结构 $validFormData = new stdclass(); $validFormData->lib = 1; $validFormData->name = '用户数据结构'; $validFormData->params = '{"name":"string","age":"int"}'; -$result1 = $tester->api->createStruct($validFormData); -// 测试步骤2:测试结构名称为空时添加数据结构 +r($tester->api->createStruct($validFormData)) && p() && e(1); // 测试正常创建数据结构 + +// 测试步骤2:结构名称为空时创建数据结构 $emptyNameData = new stdclass(); $emptyNameData->lib = 1; $emptyNameData->name = ''; $emptyNameData->params = '{"id":"int"}'; -$result2 = $tester->api->createStruct($emptyNameData); -// 测试步骤3:测试params字段为空时添加数据结构 +r($tester->api->createStruct($emptyNameData)) && p() && e(0); // 测试结构名称为空时创建数据结构 +r(dao::getError()) && p('name:0') && e('『结构名称』不能为空。'); // 测试结构名称为空的错误提示信息 + +// 测试步骤3:params字段为空时创建数据结构 $emptyParamsData = new stdclass(); $emptyParamsData->lib = 1; $emptyParamsData->name = '测试结构'; $emptyParamsData->params = ''; -$result3 = $tester->api->createStruct($emptyParamsData); -// 测试步骤4:测试边界值和特殊字符处理 -$specialCharData = new stdclass(); -$specialCharData->lib = 1; -$specialCharData->name = 'API结构_特殊字符@#$'; -$specialCharData->params = '{"field":"string"}'; -$result4 = $tester->api->createStruct($specialCharData); +r($tester->api->createStruct($emptyParamsData)) && p() && e(0); // 测试params字段为空时创建数据结构 +r(dao::getError()) && p('params:0') && e('『参数』不能为空。'); // 测试params字段为空的错误提示信息 -// 测试步骤5:测试复杂数据结构创建 +// 测试步骤4:创建复杂数据结构 $complexFormData = new stdclass(); $complexFormData->lib = 1; $complexFormData->name = '复杂数据结构'; $complexFormData->type = 'object'; $complexFormData->desc = '包含多种字段类型的复杂结构'; $complexFormData->params = '{"items":[{"name":"string","status":"enum"}]}'; -$result5 = $tester->api->createStruct($complexFormData); -// 断言验证 -r($result1) && p() && e(1); // 测试步骤1:测试正常添加数据结构 -r($result2) && p() && e(0); // 测试步骤2:测试结构名称为空时添加数据结构 -r($result3) && p() && e(0); // 测试步骤3:测试params字段为空时添加数据结构 -r($result4) && p() && e(1); // 测试步骤4:测试边界值和特殊字符处理 -r($result5) && p() && e(1); // 测试步骤5:测试复杂数据结构创建 \ No newline at end of file +r($tester->api->createStruct($complexFormData)) && p() && e(1); // 测试创建复杂数据结构 \ No newline at end of file