FORGE KUI / learn

为设置页建立回归检查

分别检查数据模型、原生输入、状态和布局。

版本 3.61.7

第11课
准备
完成设置页的事件和调试课
学完可以做
一份可重复执行的验收步骤与模型测试
下载工程 ↓settings-lab.zip

先运行包内模型测试

settings_state_test 是独立的业务模型测试,不需要打开 GUI。它能验证校验与计数,但不证明按钮、焦点或窗口布局。

powershell
cmake --build build --config Release --parallel 4
ctest --test-dir build -C Release --output-on-failure

阅读已有测试

以下代码来自课程工程,断言失败就应视为检查失败。先理解已有边界,再添加自己的约束。

cpp
#include "settings_state.h"
#include <iostream>
#include <string>
int main() {
    SettingsState state;
    if (!state.save("  Workbench  ", false) || state.name != "Workbench" || state.notifications || state.revision != 1) return 1;
    if (state.save(" \t\r\n", true) || state.name != "Workbench" || state.notifications || state.revision != 1) return 2;
    if (state.save(std::string(257, 'a'), true) || state.revision != 1) return 3;
    if (!state.save(std::string(256, 'b'), true) || state.revision != 2) return 4;
    if (!state.save("<script>alert(1)</script>", false) || state.name != "<script>alert(1)</script>") return 5;
    std::cout << "PASS: trim, rejection preserves state, byte boundary, literal text\n";
    return 0;
}

原生窗口的四步检查

手工或通过 MCP 执行同一组步骤。

  1. 输入 QA Studio 并保存:反馈显示名称,次数增加一次。
  2. 输入空白并保存:显示错误,次数不变。
  3. 输入未保存的文字并恢复:回到 QA Studio。
  4. 用 Tab 走过输入框、复选框、保存和恢复;记录当前版本的实际行为。

把操作写成 Agent 可执行任务

让 Agent 先连接当前窗口并找节点,使用真实输入与点击,在预期状态出现后截图。报告必须把输入方式、断言和失败分开记录。

text
通过 MCP 连接本地 KUI 设置窗口。
检查 #display-name、#save、#reset、#status 和 #revision。
真实输入 QA Studio,点击保存,等待保存状态出现。
输入空白并保存,断言次数不变。
修改但不保存,再恢复,断言输入回到上次保存值。
保存最终截图,报告失败项,不用属性修改代替真实输入。

验收矩阵与限制

至少覆盖中文/英文、默认/窄窗口、成功/失败/恢复。Enter 激活在已有课程运行记录中存在限制,必须作为观察项单列。不要为了让测试变绿改成点击后宣称键盘已通过。

  • 模型测试通过。
  • 实际输入、点击和反馈通过。
  • 关键控件、错误信息和焦点都在窗口内。
  • 记录版本、配置、尺寸、已知限制与未执行项。

文档有误或遗漏?

反馈此页问题 →