znt/module/ai/test/model/executeprompt.php

66 lines
2.6 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 aiModel::executePrompt();
timeout=0
cid=15022
- 步骤1空prompt参数测试 @-1
- 步骤2无效prompt ID测试 @-1
- 步骤3空object参数测试 @-2
- 步骤4无效object ID测试 @-2
- 步骤5有效参数但缺少模型配置测试 @-4
- 步骤6有效参数但数据序列化失败测试 @-3
- 步骤7有效参数但schema配置错误测试 @-5
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 创建ai_agent测试数据
$promptTable = zenData('ai_agent');
$promptTable->name->range('测试提示词1,测试提示词2,测试提示词3,测试提示词4,测试提示词5');
$promptTable->module->range('story,task,bug,project,testcase');
$promptTable->source->range('story.title,task.name,bug.title,project.name,testcase.title');
$promptTable->targetForm->range('story.create,task.edit,bug.edit,project.edit,invalid.form');
$promptTable->status->range('active,active,active,active,active');
$promptTable->model->range('1,1,999,1,1');
$promptTable->createdBy->range('admin');
$promptTable->createdDate->range('`2023-01-01 10:00:00`');
$promptTable->deleted->range('0');
$promptTable->gen(5);
// 创建ai_model测试数据
$modelTable = zenData('ai_model');
$modelTable->type->range('openai,claude,gemini');
$modelTable->vendor->range('openai,anthropic,google');
$modelTable->name->range('测试模型1,测试模型2,测试模型3');
$modelTable->credentials->range('test-key-1,test-key-2,test-key-3');
$modelTable->createdBy->range('admin');
$modelTable->createdDate->range('`2023-01-01 10:00:00`');
$modelTable->enabled->range('1,1,1');
$modelTable->deleted->range('0');
$modelTable->gen(3);
// 创建基础测试数据
zenData('story')->gen(3);
zenData('storyspec')->gen(3);
zenData('task')->gen(3);
zenData('bug')->gen(3);
zenData('project')->gen(3);
su('admin');
$aiTest = new aiModelTest();
r($aiTest->executePromptTest(null, 1)) && p() && e(-1); // 步骤1空prompt参数测试
r($aiTest->executePromptTest(999, 1)) && p() && e(-1); // 步骤2无效prompt ID测试
r($aiTest->executePromptTest(1, null)) && p() && e(-2); // 步骤3空object参数测试
r($aiTest->executePromptTest(1, 999)) && p() && e(-2); // 步骤4无效object ID测试
r($aiTest->executePromptTest(3, 1)) && p() && e(-4); // 步骤5有效参数但缺少模型配置测试
r($aiTest->executePromptTest(2, 900)) && p() && e(-3); // 步骤6有效参数但数据序列化失败测试
r($aiTest->executePromptTest(5, 1)) && p() && e(-5); // 步骤7有效参数但schema配置错误测试