docs/testing/ai-automation/storage-key-consistency/README.md
验证应用中所有存储键的使用都遵循统一的常量定义,避免魔法值导致的数据导出不完整、键名不一致等问题。
在修复用户设置导出不完整问题时,发现了多个存储键一致性问题:
'theme-id' 而不是 'app:settings:ui:theme-id''builtin-template-language' 而不是 'app:settings:ui:builtin-template-language'测试目的: 验证所有用户设置都能正确导出
AI执行指导:
// 1. 设置各种用户偏好
browser_click(element="主题切换按钮", ref="theme-toggle");
browser_wait_for(time=1);
browser_click(element="语言切换按钮", ref="language-toggle");
browser_wait_for(time=1);
browser_click(element="内置模板语言切换按钮", ref="builtin-lang-toggle");
browser_wait_for(time=1);
// 2. 选择不同的模型
browser_click(element="模型管理按钮", ref="model-manager");
browser_wait_for(time=2);
// 选择优化模型和测试模型
browser_press_key("Escape");
// 3. 导出数据
browser_click(element="数据管理按钮", ref="data-manager");
browser_wait_for(time=1);
browser_click(element="导出数据按钮", ref="export-button");
browser_wait_for(time=3);
验证点:
app:settings:ui:theme-id)app:settings:ui:preferred-language)app:settings:ui:builtin-template-language)测试目的: 验证旧版本数据格式的向后兼容性
AI执行指导:
// 1. 准备旧格式测试数据
const legacyData = {
"version": 1,
"data": {
"userSettings": {
"theme-id": "dark",
"preferred-language": "en-US",
"builtin-template-language": "zh-CN",
"app:selected-optimize-model": "gemini"
}
}
};
// 2. 导入测试数据
browser_click(element="数据管理按钮", ref="data-manager");
browser_wait_for(time=1);
// 上传测试文件
browser_click(element="导入数据按钮", ref="import-button");
browser_wait_for(time=2);
// 3. 验证导入后的设置
browser_snapshot();
验证点:
测试目的: 通过代码检查验证所有存储操作都使用常量
AI执行指导:
// 这是一个代码审查测试,需要检查源代码
// 1. 检查UI组件是否使用常量
// 2. 检查核心服务是否使用常量
// 3. 检查测试文件是否使用常量
验证点:
UI_SETTINGS_KEYS.THEME_IDUI_SETTINGS_KEYS.PREFERRED_LANGUAGECORE_SERVICE_KEYS.MODELSCORE_SERVICE_KEYS.USER_TEMPLATESCORE_SERVICE_KEYS.PROMPT_HISTORY