【发布时间】:2011-12-18 18:40:58
【问题描述】:
我在某处读到 JBehave 实际上是 Cucumber 的 Java 等价物,而 Cucumber 是基于 Ruby 的。
谁能描述它们之间的区别并提供链接?
【问题讨论】:
我在某处读到 JBehave 实际上是 Cucumber 的 Java 等价物,而 Cucumber 是基于 Ruby 的。
谁能描述它们之间的区别并提供链接?
【问题讨论】:
正如公认的答案所述,JBehave 是纯 Java,而Cucumber 是一个通用的 BDD 框架,用不同的语言实现,可以在各种不同的上下文中用作测试框架 - 请参阅此处 @987654323 @。
如果您希望为 Java 项目实现 BDD 框架,那么您的比较应该主要在 JBehave 和 Cucumber-JVM(Cucumber 的纯 Java 实现)之间进行。
以下 2017 年 7 月的最新参考比较了 JBehave 和 Cucumber-JVM,并表明 cucumber-jvm 目前一般优于 JBehave(就当前活动的程度和用法)。这包括更积极地维护 Cucumber-JVM:
文章在结论中还指出:
据我了解,JBehave 正处于其生命周期的成熟阶段,而 Cucumber 仍处于成熟阶段,每天都有很酷的新功能。
文章在以下几个方面对 Cucumber-jvm 的总体评分较高
本文比较的功能集对 Cucumber-JVM 功能的总体评分更高,但是您可能赋予某些功能的权重将取决于您的特定需求:
文章在以下方面对 Cucumber-JVM 的评价更高:
文章在以下方面对 JBehave 的评价更高:
复合步骤不是 BDD/Gherkin 标准的功能。
...主要原因是,使用此功能的人经常会遇到杂乱无章的自动化代码,这些代码脆弱且难以维护。
文章对 jbehave 和 Cucumber-JVM 的评价相同:
JBehave 功能:
【讨论】:
Cucumber JVM 是流行的 Cucumber BDD 工具的 Java 实现,如上述答案中所述。
JBehave 有许多额外的配置,可以根据您的喜好微调 BDD 工具。但是这些配置也带来了很大的复杂性。归根结底,我们正在走向敏捷,我们喜欢在工作中精益求精。您应该问自己的问题是,这些复杂的配置是否会为您的工作流程增加任何重要价值。即使没有像 Cucumber 或 JBehave 这样强大的工具,我也见过有人在做 BDD。有些人也创建了自己的工具。我的观察是,如果您需要 BDD 工具,Cucumber 几乎可以满足您的所有需求。
更多见解,你可以阅读我写的这篇博文:JBehave Vs Cucumber JVM: Comparison and Experience Sharing
P。 S. 我觉得 Stackoverflow 不是就工具提出主观问题的最佳社区。无论如何希望这个讨论对某人有用。
【讨论】:
不,实际上,黄瓜的 Java 等效项是 Cucumber-JVM。您可能还需要查看此Link 以了解这两个著名的 BDD 框架之间的区别。
【讨论】:
JBehave 和 Cucumber 是完全不同的框架,尽管目的相同:验收测试。它们基于故事 (JBehave) 或功能 (Cucumber)。特征是从特定项目利益相关者的角度表达的故事的集合。在您的测试中,您指的是故事,通常是通过正则表达式匹配。
JBehave 是一个纯 Java 框架,而 Cucumber 是基于 Ruby 的。两者都是非常成熟的框架。您可以通过Cuke4Duke Maven plugin from Maven 使用 Java 中的 Cucumber,但仍然存在语言不匹配,因为它继续在内部使用 Ruby,您需要在运行的机器上安装该语言及其基础架构(所谓的“gems”)你的测试。这可能很脆弱,并且语言不匹配会使调试复杂化并阻碍测试的性能。现在有一个 Cucumber 的纯 Java 实现,称为Cucumber-JVM。截至 2011 年 12 月,它尚未发布,但完全可用(编辑:version 1.0.0 was released,2012 年 3 月 27 日)。这个新框架与 JBehave 非常相似,因为两者都支持原生 JUnit。
以下是 Cucumber-JVM 和 JBehave 的对比。
相似之处:
JBehave 的优点/缺点:
Cucumber-JVM 的优缺点:
如果您从事 Java 项目,我建议您使用 JBehave(如果您正在寻找出色的文档)或 Cucumber-JVM(如果功能支持或故事对您很重要)。
我尝试了这两个框架并选择了 Cucumber-JVM。
【讨论】: