+ [misc] Add unit tests for aiappModel::getLatestMiniPrograms() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-15 15:06:09 +08:00
co-authored by Claude
parent 2bf61ebcdc
commit b34ebef771
3 changed files with 183 additions and 0 deletions
@@ -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;
}
}
+55
View File
@@ -0,0 +1,55 @@
#!/usr/bin/env php
<?php
/**
title=测试 aiappModel::getLatestMiniPrograms();
timeout=0
cid=0
- 步骤1:正常情况获取最新小程序总数 @15
- 步骤2:排序测试(按发布时间倒序,最新的是test)第18条的name属性 @test
- 步骤3:按ID升序排序,第一个有效记录第4条的name属性 @健身计划
- 步骤4:按创建时间升序排序第4条的name属性 @健身计划
- 步骤5:按名称升序排序测试第10条的name属性 @调研问卷生成器
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/aiapp.unittest.class.php';
// 2. zendata数据准备(根据需要配置)
$table = zenData('ai_miniprogram');
$table->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:按名称升序排序测试
@@ -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: ""