行为驱动开发 - 工具

开发团队经常错误地认为BDD是一个工具框架。 实际上,BDD是一种开发方法而不是工具框架。 然而,与其他开发方法一样,也有用于 BDD 的工具。

多种 BDD 工具用于不同的平台和编程语言。 他们是 −

  • Cucumber(Ruby 框架)

  • SpecFlow(.NET 框架)

  • Behave (Python 框架)

  • JBehave(Java 框架)

  • JBehave Web(与 Selenium 集成的 Java 框架)

  • Lettuce(Python框架)

  • Concordion(Java 框架)

  • Behat(PHP 框架)

  • Kahlan(PHP 框架)

  • DaSpec(JavaScript 框架)

  • Jasmine(JavaScript 框架)

  • Cucumber-js(JavaScript 框架)

  • Squish GUI Tester(适用于 JavaScript、Python、Perl、Ruby 和 Tcl 的 BDD GUI 测试工具)

  • Spock(Groovy 框架)

  • Yadda(对 Jasmine(JavaScript 框架)等框架的 Gherkin 语言支持)

Cucumber

Cucumber 是全球使用的可执行规范的免费工具。 Cucumber 让软件开发团队以纯文本方式描述软件的行为方式。 该文本以业务可读、特定于领域的语言编写,并用作文档、自动化测试和开发辅助,全部汇总为一种格式。 您可以通过 Cucumber 使用四十多种不同的口语(英语、中文等)。

Cucumber – 主要功能

Cucumber的主要特点如下 −

  • Cucumber 可用于可执行规范、测试自动化和实时文档。

  • Cucumber 可与以任何语言编写的 Ruby、Java、NET、Flex 或 Web 应用程序配合使用。

  • Cucumber 支持在表格中进行更简洁的测试 - 类似于 FIT 的做法。

  • Cucumber 将需求、自动化测试和文档融合为一个整体:验证软件的纯文本可执行规范,彻底改变了软件开发生命周期。

SpecFlow

SpecFlow 是适用于 .NET 平台的 BDD 工具。 SpecFlow 是一个开源项目。 源代码托管在 GitHub 上。

SpecFlow 使用 Gherkin 语法来实现功能。 Gherkin 格式由 Cucumber 引入,也被其他工具使用。 Gherkin 语言作为 GitHub 上的项目进行维护 − https://github.com/cucumber/gherkin

Behave

Behave 用于 Python 框架。

  • Behave 适用于存储在名为"features"的目录中的三种类型的文件−

    • 包含您的行为场景的功能文件。

    • "steps"目录,其中包含场景的 Python 步骤实现。

    • (可选)一些环境控制(在步骤、场景、功能或整个射击比赛之前和之后运行的代码)。

  • 行为功能是使用 Gherkin 编写的(经过一些修改),并命名为"name.feature"。

  • 附加到功能和场景的标签可通过传递给它们的"feature"或"scenario"对象在环境函数中使用。 在这些对象上有一个名为"tags"的属性,它是附加的标签名称列表,按照它们在功能文件中找到的顺序排列。

  • 对 Gherkin 标准的修改 −

    • Behave 可以解析标准 Gherkin 文件并扩展 Gherkin 以允许小写步骤关键字,因为这些有时可以允许更具可读性的功能规范

Lettuce

Lettuce是一个非常简单的基于Cucumber的BDD工具。 它可以执行纯文本功能描述作为 Python 项目的自动化测试。 Lettuce 针对 BDD 上最常见的任务。

Concordion

Concordion 是一个开源工具,用于自动化 Java 框架示例规范。

虽然核心功能很简单,但强大的扩展框架API允许您添加功能,例如使用 Excel 电子表格作为规范、向输出添加屏幕截图、显示日志记录信息等。

Concordion 允许您使用段落、表格和正确的标点符号以正常语言编写规范,而无需使用"Given/When/Then"的结构化语言。

Concordion 已被移植到其他语言,包括−

  • C# (Concordion.NET)

  • Python (PyConcordion)

  • Ruby (Ruby-Concordion)