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

57 lines
2 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::decodeResponse();
timeout=0
cid=15015
- 执行aiTest模块的decodeResponseTest方法参数是$validResponse 属性message @Hello World
- 执行aiTest模块的decodeResponseTest方法参数是$failResponse @0
- 执行aiTest模块的decodeResponseTest方法参数是$invalidJsonResponse @0
- 执行aiTest模块的decodeResponseTest方法参数是$emptyResponse @0
- 执行aiTest模块的decodeResponseTest方法参数是$complexResponse 属性model @gpt-3.5-turbo
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. 用户登录
su('admin');
// 3. 创建测试实例
$aiTest = new aiModelTest();
// 4. 测试步骤
// 步骤1正常JSON响应解码
$validResponse = new stdClass();
$validResponse->result = 'success';
$validResponse->content = '{"message":"Hello World"}';
r($aiTest->decodeResponseTest($validResponse)) && p('message') && e('Hello World');
// 步骤2响应结果为fail时的处理
$failResponse = new stdClass();
$failResponse->result = 'fail';
$failResponse->message = 'API request failed';
r($aiTest->decodeResponseTest($failResponse)) && p() && e('0');
// 步骤3无效JSON格式响应的处理
$invalidJsonResponse = new stdClass();
$invalidJsonResponse->result = 'success';
$invalidJsonResponse->content = '{"invalid": json syntax';
r($aiTest->decodeResponseTest($invalidJsonResponse)) && p() && e('0');
// 步骤4空响应内容的处理
$emptyResponse = new stdClass();
$emptyResponse->result = 'success';
$emptyResponse->content = '';
r($aiTest->decodeResponseTest($emptyResponse)) && p() && e('0');
// 步骤5复杂嵌套JSON结构的解码
$complexResponse = new stdClass();
$complexResponse->result = 'success';
$complexResponse->content = '{"model":"gpt-3.5-turbo","status":"completed"}';
r($aiTest->decodeResponseTest($complexResponse)) && p('model') && e('gpt-3.5-turbo');