AppIntentsTesting:全新的 App Intents 测试框架
deep_candidateVenkatesh(App Intents 团队)开场:AppIntentsTesting 框架可测试 app 的 App Intents 集成。App Intents 是 app 与系统集成的核心部分,测试确保其不被破坏。
正在接入 Apple HLS 视频源…
Venkatesh(App Intents 团队)开场:AppIntentsTesting 框架可测试 app 的 App Intents 集成。App Intents 是 app 与系统集成的核心部分,测试确保其不被破坏。
参数名和类型不提供自动补全,需基于 intent 参数手动填充。标准参数类型自动转换,自定义类型通过 IntentValueConvertibleWrapper 处理。
search bar 调用 EventEntity 的 string query 确定结果。未实现时使用 AppIntentsTesting 以测试驱动方式先写测试后实现。entity query 是 App Intents 的内容发现基础。
测试运行流程:app 启动→创建 event→更新 event→验证结果。测试覆盖 entity 的完整生命周期。确认 intent 在真实场景中按预期工作。
测试验证 event 已被 Spotlight 索引。View Annotations 告诉系统当前 view 显示哪个 entity,使 Siri 可理解屏幕内容并直接操作。连接 AppIntentsTesting 与系统入口测试。
自动化测试 intent/entity/schema 的正确性。CI 中自动验证 Schema 未被破坏,防止变更导致 Siri 入口失效。测试不再是可选项而是必需项。
String query 的实现决定 entity 能否被 Siri 搜索到。测试驱动方式确保 entity query 在发布前已正确实现。entity 的不可发现=系统入口不可用。
entity 被 Spotlight 索引 + View Annotations 告知 Siri 当前屏幕内容 = Siri 可发现和操作 entity。AppIntentsTesting 可测试这条完整链路。
240 定义 Schema 合同,343/345 提供进阶能力,295 确保合同不被破坏。测试是 App Intents 从「能工作」到「可持续工作」的关键。
AppIntentsTesting 的测试覆盖报告标记已测试和未测试的 entity/action。指导开发者逐步补齐测试盲区,防止 Siri 入口因未测试的 Schema 变更而失效。