用途:作为 BDD/Cucumber 实践技能,帮助按行为驱动开发方式编写、评审和改进 feature 文件与 step definitions,让测试成为可读的活文档。核心原则:feature 使用业务领域语言、声明式而非命令式、一个场景只验证一个业务行为、step 定义可复用、feature 是行为的单一事实来源。主要能力:提供 TypeScript 与 Java 两套项目结构,包含 features、step-definitions、support、pages 等目录;示例覆盖登录、注册、商品列表、购物车、支付等场景。介绍 Background、@smoke/@auth/@negative 等标签、Scenario Outline 数据驱动、Data Table(hashes、rowsHash、asMaps)的写法,并给出 TypeScript 与 Java 的 step 实现。World 与 Hooks 部分演示了浏览器与页面初始化、失败截图、按标签执行前置登录与清理,以及 BeforeAll、AfterAll、BeforeStep、AfterStep、Status 等钩子。使用方式:通过 cucumber.js 配置 require、requireModule、format、paths,运行 npx cucumber-js --tags "@smoke" 或组合标签筛选;Java 侧使用 @CucumberOptions 的 TestRunner 与 DataProvider 并行执行。最佳实践强调先写 feature、使用领域语言、场景保持 3-8 步、用 Background 复用 Given、用 Scenario Outline 减少重复、标签用于筛选、step 保持轻量并委托 page object。同时列出反模式:feature 中出现 UI 细节、技术术语、步骤过多、场景耦合、过度正则、硬编码数据、缺少标签等。限制:该技能未提供安装命令、具体依赖版本、收费与平台信息,部分内容暂未提供;示例中的 URL、凭证和断言仅作演示。
BDD/Cucumber Patterns
编程与开发
更新于 10-16 08:07