From b34ebef7712a96f918446dcfdd422ce46715762d Mon Sep 17 00:00:00 2001 From: liugang Date: Sat, 6 Sep 2025 23:42:39 +0800 Subject: [PATCH] + [misc] Add unit tests for aiappModel::getLatestMiniPrograms() 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 --- .../aiapp/test/lib/aiapp.unittest.class.php | 16 +++ .../test/model/getlatestminiprograms.php | 55 +++++++++ .../ai_miniprogram_getlatestminiprograms.yaml | 112 ++++++++++++++++++ 3 files changed, 183 insertions(+) create mode 100755 module/aiapp/test/model/getlatestminiprograms.php create mode 100644 module/aiapp/test/model/yaml/ai_miniprogram_getlatestminiprograms.yaml diff --git a/module/aiapp/test/lib/aiapp.unittest.class.php b/module/aiapp/test/lib/aiapp.unittest.class.php index 739a32c902..f895501959 100644 --- a/module/aiapp/test/lib/aiapp.unittest.class.php +++ b/module/aiapp/test/lib/aiapp.unittest.class.php @@ -21,4 +21,20 @@ class aiappTest return $result; } + + /** + * Test getLatestMiniPrograms method. + * + * @param object $pager + * @param string $order + * @access public + * @return mixed + */ + public function getLatestMiniProgramsTest($pager = null, $order = 'publishedDate_desc') + { + $result = $this->objectModel->getLatestMiniPrograms($pager, $order); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/aiapp/test/model/getlatestminiprograms.php b/module/aiapp/test/model/getlatestminiprograms.php new file mode 100755 index 0000000000..2a943ebd21 --- /dev/null +++ b/module/aiapp/test/model/getlatestminiprograms.php @@ -0,0 +1,55 @@ +#!/usr/bin/env php +id->range('1-20'); +$table->name->range('职业发展导航,工作汇报,市场分析报告,健身计划,广告创意大师,文章撰写助手,视频脚本创意工坊,邮件起草助手,新人介绍,调研问卷生成器,test{10}'); +$table->category->range('personal{5},work{5},life{3},creative{7}'); +$table->desc->range('这是一个AI小程序的描述信息{20}'); +$table->icon->range('writinghand-7,technologist-2,chart-6,cactus-5,palette-3{16}'); +$table->createdBy->range('system,admin,user{18}'); +$table->createdDate->range('`(-2 months)`:`(-1 weeks)`:7D')->type('timestamp')->format('YYYY-MM-DD hh:mm:ss'); +$table->editedBy->range('system,admin,user{18}'); +$table->editedDate->range('`(-1 months)`:`(now)`:7D')->type('timestamp')->format('YYYY-MM-DD hh:mm:ss'); +$table->published->range('0{3},1{17}'); +$table->publishedDate->range('`(-1 months)`:`(now)`:7D')->type('timestamp')->format('YYYY-MM-DD hh:mm:ss'); +$table->deleted->range('0{18},1{2}'); +$table->prompt->range('请帮我生成{20}'); +$table->builtIn->range('0{10},1{10}'); +$table->gen(20); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 加载pager类 +global $tester; +$tester->app->loadClass('pager', true); + +// 5. 创建测试实例(变量名与模块名一致) +$aiappTest = new aiappTest(); + +// 5. 强制要求:必须包含至少5个测试步骤 +r(count($aiappTest->getLatestMiniProgramsTest())) && p() && e('15'); // 步骤1:正常情况获取最新小程序总数 +r($aiappTest->getLatestMiniProgramsTest(null, 'publishedDate_desc')) && p('18:name') && e('test'); // 步骤2:排序测试(按发布时间倒序,最新的是test) +r($aiappTest->getLatestMiniProgramsTest(null, 'id_asc')) && p('4:name') && e('健身计划'); // 步骤3:按ID升序排序,第一个有效记录 +r($aiappTest->getLatestMiniProgramsTest(null, 'createdDate_asc')) && p('4:name') && e('健身计划'); // 步骤4:按创建时间升序排序 +r($aiappTest->getLatestMiniProgramsTest(null, 'name_asc')) && p('10:name') && e('调研问卷生成器'); // 步骤5:按名称升序排序测试 \ No newline at end of file diff --git a/module/aiapp/test/model/yaml/ai_miniprogram_getlatestminiprograms.yaml b/module/aiapp/test/model/yaml/ai_miniprogram_getlatestminiprograms.yaml new file mode 100644 index 0000000000..ed587e06ed --- /dev/null +++ b/module/aiapp/test/model/yaml/ai_miniprogram_getlatestminiprograms.yaml @@ -0,0 +1,112 @@ +--- +title: ai_miniprogram表数据定义 - getLatestMiniPrograms方法测试 +desc: 为getLatestMiniPrograms方法提供测试数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 小程序ID + range: 1-20 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: name + note: 小程序名称 + range: 职业发展导航,工作汇报,市场分析报告,健身计划,广告创意大师,文章撰写助手,视频脚本创意工坊,邮件起草助手,新人介绍,调研问卷生成器,test{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: category + note: 分类 + range: personal{5},work{5},life{3},creative{7} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: desc + note: 描述 + range: 这是一个AI小程序的描述信息{20} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: model + note: 模型ID + range: 1-5:R + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: icon + note: 图标 + range: writinghand-7,technologist-2,chart-6,cactus-5,palette-3 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: createdBy + note: 创建者 + range: system,admin,user{3} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: createdDate + note: 创建时间 + range: (-2M)-(-1w):7D + prefix: "" + postfix: "" + loop: 0 + format: "YYYY-MM-DD hh:mm:ss" +- field: editedBy + note: 编辑者 + range: system,admin,user{3} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedDate + note: 编辑时间 + range: (-1M)-(w):7D + prefix: "" + postfix: "" + loop: 0 + format: "YYYY-MM-DD hh:mm:ss" +- field: published + note: 发布状态 + range: 0{3},1{17} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: publishedDate + note: 发布时间 + range: (-1M)-(w):7D + prefix: "" + postfix: "" + loop: 0 + format: "YYYY-MM-DD hh:mm:ss" +- field: deleted + note: 删除状态 + range: 0{18},1{2} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: prompt + note: 提示词 + range: 请帮我生成{20} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: builtIn + note: 内置状态 + range: 0{10},1{10} + prefix: "" + postfix: "" + loop: 0 + format: "" \ No newline at end of file