SuperAPI AI 工具集

tui-tests

测试与质量

查看项目

更新于 10-15 21:52

技能介绍

用途:在新增或修改 GitButler 的 Ratatui TUI 测试时使用。主要能力:给出测试与快照的存放位置、基本测试模式,以及通过输入驱动 TUI 并做断言的方式。

位置:主 TUI 测试在 crates/but/src/command/legacy/status/tui/tests/;测试工具在 crates/but/src/tui/test_utils.rs 与 crates/but/src/command/legacy/status/tui/tests/utils.rs;快照在 crates/but/src/command/legacy/status/tui/tests/snapshots/。

用法:测试用 Sandbox 初始化场景,setup_metadata,创建 test_status_tui(env)。通过 tui.input_then_render 驱动,可传入 None、字符、特殊键、Shift/Control 组合、按键数组或字符串;外部改动后用 tui.reload()。断言优先用 assert_current_line_eq 检查光标/选择,其他用 assert_rendered_term_svg_eq 快照;每组逻辑输入建议包含一个快照断言。谨慎使用 assert_rendered_contains 与 assert_rendered_not_contains。

运行:cargo test -p but <test-name> 运行单个测试;SNAPSHOTS=overwrite cargo test -p but <test-name> 更新快照;cargo test -p but tui 运行所有 TUI 测试,改动后应执行。测试失败会输出渲染状态,便于调试。

限制:不得向 test_utils.rs 或 tests/utils.rs 添加新断言类型,只能使用现有断言;不要复用其他测试的快照,每个测试应有自己的快照;避免使用 tui.env().invoke_git("..."),优先通过 TUI 执行操作。官方资料未提供其他功能或收费信息。