+ [misc] Add unit tests for aiModel::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:07 +08:00
co-authored by Claude
parent ce5c8f46c6
commit 1003fb1ab0
3 changed files with 125 additions and 0 deletions
+16
View File
@@ -512,4 +512,20 @@ class aiTest
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;
}
}
+52
View File
@@ -0,0 +1,52 @@
#!/usr/bin/env php
<?php
/**
title=测试 aiModel::getLatestMiniPrograms();
timeout=0
cid=0
- 步骤1:正常情况,返回10条符合条件的记录 @10
- 步骤2:不同排序方式,按名称升序 @10
- 步骤3:按ID倒序查询 @10
- 步骤4:验证返回的都是已发布的小程序第4条的published属性 @1
- 步骤5:验证返回的都是未删除的小程序第5条的deleted属性 @0
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/ai.unittest.class.php';
// 2. zendata数据准备(根据需要配置)
$table = zenData('ai_miniprogram');
$table->id->range('1-15');
$table->name->range('Career Guide,Writing Helper,Code Generator,Translator,Study Plan,Project Manager');
$table->category->range('personal,work,development');
$table->desc->range('AI miniprogram description,Helps improve work efficiency,Provides intelligent services');
$table->model->range('1-3');
$table->icon->range('writinghand-7,technologist-6,coding-1,translate-2,book-3');
$table->createdBy->range('admin,user,system');
$table->createdDate->range('`2025-08-01 10:00:00`,`2025-08-15 10:00:00`');
$table->editedBy->range('admin,user,system');
$table->editedDate->range('`2025-08-20 10:00:00`,`2025-09-06 10:00:00`');
$table->published->range('0{3},1{12}');
$table->publishedDate->range('`2025-08-10 10:00:00`,`2025-09-06 10:00:00`');
$table->deleted->range('0{13},1{2}');
$table->prompt->range('Please help me generate,This is used for,AI assistant will');
$table->builtIn->range('0,1');
$table->gen(15);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$aiTest = new aiTest();
// 5. 🔴 强制要求:必须包含至少5个测试步骤
r(count($aiTest->getLatestMiniProgramsTest())) && p() && e('10'); // 步骤1:正常情况,返回10条符合条件的记录
r(count($aiTest->getLatestMiniProgramsTest(null, 'name_asc'))) && p() && e('10'); // 步骤2:不同排序方式,按名称升序
r(count($aiTest->getLatestMiniProgramsTest(null, 'id_desc'))) && p() && e('10'); // 步骤3:按ID倒序查询
r($aiTest->getLatestMiniProgramsTest()) && p('4:published') && e('1'); // 步骤4:验证返回的都是已发布的小程序
r($aiTest->getLatestMiniProgramsTest()) && p('5:deleted') && e('0'); // 步骤5:验证返回的都是未删除的小程序
@@ -0,0 +1,57 @@
---
title: AI小程序测试数据
desc: 用于测试getLatestMiniPrograms方法的测试数据
fields:
- field: id
note: 小程序ID
range: 1-15
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: 小程序名称
range: Career Guide{2},Writing Helper{3},Code Generator{2},Translator{3},Study Plan{2},Project Manager{3}
- field: category
note: 分类
range: personal{5},work{5},development{5}
- field: desc
note: 描述
range: AI miniprogram description{5},Helps improve work efficiency{5},Provides intelligent services{5}
- field: model
note: 关联模型ID
range: 1-3:R
- field: icon
note: 图标
range: writinghand-7{3},technologist-6{3},coding-1{3},translate-2{3},book-3{3}
- field: createdBy
note: 创建者
range: admin{5},user{5},system{5}
- field: createdDate
note: 创建时间
range: (-2M)-(-1M):3D
format: YYYY-MM-DD hh:mm:ss
- field: editedBy
note: 编辑者
range: admin{5},user{5},system{5}
- field: editedDate
note: 编辑时间
range: (-1M)-(+0D):2D
format: YYYY-MM-DD hh:mm:ss
- field: published
note: 是否发布
range: 0{3},1{12}
- field: publishedDate
note: 发布时间
range: (-25D)-(-5D):2D
format: YYYY-MM-DD hh:mm:ss
- field: deleted
note: 是否删除
range: 0{13},1{2}
- field: prompt
note: 提示词
range: Please help me generate..{5},This is used for..{5},AI assistant will..{5}
- field: builtIn
note: 是否内置
range: 0{10},1{5}