JBehave和Cucumber有什么区别?

Man*_*noj 63 bdd cucumber jbehave

我在某处读过JBehave实际上是与Cucumber相当的Java,而Cucumber是基于Ruby的.

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

小智 104

JBehave和Cucumber是完全不同的框架,虽然意味着相同的目的:验收测试.它们基于故事(JBehave)或功能(Cucumber).功能是一组故事,从特定项目利益相关者的角度表达.在您的测试中,您指的是故事,通常是通过正则表达式匹配.

JBehave是纯Java框架,而Cucumber基于Ruby.两者都是非常成熟的框架.您可以从Java通过使用黄瓜从Maven的Cuke4Duke Maven插件,但仍有一门语言不匹配,因为它继续在内部使用Ruby,您需要在机器上安装这种语言及其基础设施(所谓的"宝石")运行测试.这可能很脆弱,语言不匹配会使调试变得复杂并妨碍测试的性能.现在有一个纯粹的Java实现Cucumber,它被称为Cucumber-JVM.截至2011年12月,它尚未发布,但完全可用(编辑:版本1.0.0于2012年3月27日发布).这个新框架与JBehave非常相似,因为它们都具有本机JUnit支持.

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

相似点:

  • JUnit支持开箱即用
  • 纯Java
  • 快速
  • 使用方便

JBehave的优点/缺点:

  • Pro非常好的文档
  • Pro相当不错的HTML格式的测试结果
  • Con Only支持故事,而不是功能

黄瓜-JVM的优点/缺点:

  • Pro支持功能
  • Con不支持并行JUnit测试.然而,将使用并行Maven 3版本.
  • Con缺乏文件
  • Con除了JUnit自己的格式之外,没有漂亮的HTML格式的测试结果 (编辑:Cucumber-JVM现在支持HTML输出)

如果你是一个Java项目,我会建议,要么JBehave(如果你正在寻找伟大的文档)或黄瓜JVM(如果要素的支持,而不是或故事对你很重要).

我尝试了两个框架,然后选择了Cucumber-JVM.

  • 我不得不从Cucumber切换到JBehave,因为Sonar工具不支持Cucumber-JVM. (11认同)