Testing Mock
这个模块是实现对 App 运行时的包装,实现以下能力:
假设初始化了一个 App 实例 app:
use App;
let app = new;
// ... 初始化该 App
- TestingApp: 一个可以被测试的 App 包装器,支持注入命令行参数和捕获输出。
use TestingApp;
// 创建一个 TestingApp 包装器
let app = new;
let t = app
// 返回 TestSuite 可修改的引用
.suite // 可选,默认值 default
// 返回 TestCase 可修改的引用
.test
.commands
.args
.input_events // 如果需要模拟输入事件
- 断言支持: 提供对输出结果的断言功能,可以检查标准输出、标准错误等。
let result = t.assert // 返回 Assert 断言构建器
.stdout
.success; // 执行测试
let result = t.assert
.stderr
.failure;
- 快照测试支持:提供对输出的快照测试功能,可以将当前输出与之前保存的快照进行比较,快照保存在当前 Git 代码库中,支持快照更新。
let result = t.assert
.snapshot
.success;
- 测试报告生成
// 单个测试用例的报告
println!;
// 整个测试套件的报告
println!;