cucumber - JBehave 和 Cucumber 有什么区别?

标签 cucumber bdd jbehave

我在某处读到,JBehave 实际上是 Cucumber 的 Java 等价物,而 Cucumber 是基于 Ruby 的。

有人可以描述它们之间的差异并提供相关链接吗?

最佳答案

JBehave 和 Cucumber 是完全不同的框架,尽管其目的相同:验收测试。它们基于故事 (JBehave) 或功能 (Cucumber)。专题是从特定项目利益相关者的角度表达的故事集合。在您的测试中,您通常通过正则表达式匹配来引用故事。

JBehave 是一个纯 Java 框架,而 Cucumber 则基于 Ruby。两者都是非常成熟的框架。您可以通过 Java 使用 Cucumber Cuke4Duke Maven plugin from Maven ,但仍然存在语言不匹配的问题,因为它继续在内部使用 Ruby,您需要在运行测试的计算机上安装该语言及其基础设施(所谓的“gems”)。这可能很脆弱,并且语言不匹配会使调试变得复杂并阻碍测试的性能。现在有一个 Cucumber 的纯 Java 实现,名为 Cucumber-JVM 。截至 2011 年 12 月,它尚未发布,但可以完美使用(编辑:version 1.0.0 was released 于 2012 年 3 月 27 日)。这个新框架与 JBehave 非常相似,因为两者都具有 native JUnit 支持。

以下是Cucumber-JVM和JBehave的比较。

相似之处:

  • 开箱即用的 JUnit 支持
  • 纯Java
  • 易于使用

JBehave 的优点/缺点:

  • 专业版非常好的文档
  • Pro 测试结果的 HTML 格式非常好
  • 缺点仅支持故事,不支持功能

Cucumber-JVM 的优点/缺点:

  • 专业版支持功能
  • 缺点 不支持并行 JUnit 测试。不过,可以与并行 Maven 3 构建一起使用。
  • 缺点缺乏文档
  • 缺点 除了 JUnit 自己的格式之外,测试结果没有漂亮的 HTML 格式 (编辑:Cucumber-JVM 现在支持 HTML 输出)

如果您参与 Java 项目,我会推荐 JBehave(如果您正在寻找优秀的文档)或 Cucumber-JVM(如果对功能或故事的支持对您很重要)。

我尝试了这两个框架并选择了 Cucumber-JVM。

关于cucumber - JBehave 和 Cucumber 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7954755/

相关文章:

java - JBehave 面临的问题

testing - 在 BDD 测试中时不时地混合使用

ruby-on-rails - cucumber 防止清除数据库

ruby-on-rails-3 - ThinkingSphinx 在 Cucumber 中处于测试模式时不返回结果

java - 如何获取 ExtentReport-cucumber 报告实例?

cucumber - 应该在 BDD Given 和 When 中执行断言

javascript - Mocha bdd 风格测试命名

java - Selenium getDriver() 对于@AfterScenario 是空的(在 AssertionError 之后)

selenium - jbehave + 修昔底德 : how to override 300s timeout

.net - 在 .net 应用程序中使用 Cucumber 和 rspec 的教程