From dd73f8228469e564ce63de5df6be37386b70cc7c Mon Sep 17 00:00:00 2001 From: liugang Date: Sat, 6 Sep 2025 14:18:25 +0800 Subject: [PATCH] + [misc] Add unit tests for aiModel::useLanguageModel() 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 --- module/ai/test/lib/ai.unittest.class.php | 19 +++++++++ module/ai/test/model/uselanguagemodel.php | 47 +++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100755 module/ai/test/model/uselanguagemodel.php diff --git a/module/ai/test/lib/ai.unittest.class.php b/module/ai/test/lib/ai.unittest.class.php index 2c4b98727e..d32a464773 100644 --- a/module/ai/test/lib/ai.unittest.class.php +++ b/module/ai/test/lib/ai.unittest.class.php @@ -39,4 +39,23 @@ class aiTest return $result; } + + /** + * Test useLanguageModel method. + * + * @param mixed $modelID + * @access public + * @return mixed + */ + public function useLanguageModelTest($modelID = null) + { + /* Using reflection to call private method */ + $reflection = new ReflectionClass($this->objectModel); + $method = $reflection->getMethod('useLanguageModel'); + $method->setAccessible(true); + $result = $method->invoke($this->objectModel, $modelID); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/ai/test/model/uselanguagemodel.php b/module/ai/test/model/uselanguagemodel.php new file mode 100755 index 0000000000..20cf233e7d --- /dev/null +++ b/module/ai/test/model/uselanguagemodel.php @@ -0,0 +1,47 @@ +#!/usr/bin/env php +id->range('1-5'); +$table->type->range('chat{3},completion{2}'); +$table->vendor->range('openai{3},azure{2}'); +$table->credentials->range('{}'); +$table->name->range('GPT-4{3},Claude{2}'); +$table->desc->range('Test model{5}'); +$table->createdBy->range('admin{5}'); +$table->createdDate->range('`2024-01-01`'); +$table->enabled->range('1{4},0{1}'); +$table->deleted->range('0{5}'); +$table->gen(5); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$aiTest = new aiTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($aiTest->useLanguageModelTest(1)) && p() && e('0'); // 步骤1:测试有效模型 +r($aiTest->useLanguageModelTest(5)) && p() && e('0'); // 步骤2:测试禁用模型 +r($aiTest->useLanguageModelTest(999)) && p() && e('0'); // 步骤3:测试不存在模型 +r($aiTest->useLanguageModelTest('')) && p() && e('0'); // 步骤4:测试空值 +r($aiTest->useLanguageModelTest(null)) && p() && e('0'); // 步骤5:测试null值 \ No newline at end of file