我在某处读到,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/