mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-06 16:07:45 +08:00
fix(ai): 修复 OpenAI 结构化输出解析问题并重构代码结构
- 修复 OpenAI structured output 的 properties 包装层解析问题 - 重构 parseCustomSchemaResult 函数,提高代码可维护性: - 拆分为多个职责单一的小函数 - 消除重复的字段提取逻辑 - 采用清晰的策略模式处理不同解析场景 - 增强测试用例,添加具体的数值和结构验证 - 保持完全向后兼容,所有现有测试通过 Fixes: TestQueryFunctionality/ComprehensiveAnalysis 测试失败问题
This commit is contained in:
@@ -183,6 +183,9 @@ func TestQueryFunctionality(t *testing.T) {
|
||||
assert.NotNil(t, gameInfo)
|
||||
assert.NotEmpty(t, gameInfo.Content)
|
||||
assert.NotEmpty(t, gameInfo.Thought)
|
||||
assert.Equal(t, 4, gameInfo.Rows)
|
||||
assert.Equal(t, 3, gameInfo.Cols)
|
||||
assert.Equal(t, 5, gameInfo.TotalIcons)
|
||||
|
||||
t.Logf("Custom Schema Query Result: %+v", gameInfo)
|
||||
})
|
||||
@@ -206,6 +209,16 @@ func TestQueryFunctionality(t *testing.T) {
|
||||
assert.NotEmpty(t, result.Thought)
|
||||
assert.NotNil(t, result.Data)
|
||||
|
||||
gameAnalysisResult, ok := result.Data.(*GameAnalysisResult)
|
||||
assert.True(t, ok)
|
||||
assert.NotNil(t, gameAnalysisResult)
|
||||
assert.NotEmpty(t, gameAnalysisResult.Content)
|
||||
assert.NotEmpty(t, gameAnalysisResult.Thought)
|
||||
assert.NotEmpty(t, gameAnalysisResult.GameType)
|
||||
assert.Equal(t, 4, gameAnalysisResult.Dimensions.Rows)
|
||||
assert.Equal(t, 3, gameAnalysisResult.Dimensions.Cols)
|
||||
assert.Equal(t, 12, len(gameAnalysisResult.Elements))
|
||||
|
||||
t.Logf("Comprehensive Analysis Result: %+v", result.Data)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user