java - 适用于 Java 平台的商业 BDD 工具

标签 java testing bdd acceptance-testing

过去几周我一直在尝试几个 Java 验收测试框架(例如 Fitnesse、JBehave)。

在决定使用哪一个之前,我试图找出是否有任何商业替代品,但并没有真正找到。任何指示表示赞赏。

我们的要求是(不完整且未排序的列表):

  • 使用给定/何时/那么风格的文本和表格
  • 标准库集成,例如 JUnit、Mockito
  • IDE 集成/工具
  • 良好的报告(业务分析师的可读性、开发人员的诊断能力)

最佳答案

对于商业替代品:

  • Thoughtworks' "Twist"
  • 保罗·杰拉德的 "Business Story Manager" ,这也影响到一些更高级别的 BDD 模式,识别利益相关者并跟踪场景与更大规模需求的关系

我只知道这两个。两者在 BDD 社区中都没有大量追随者。我相信最常用的两个工具是 JBehave 和 Cucumber(正如 @kazakovs 指出的那样,它们也可用于 JVM)。这些有助于捕获开发人员和业务分析师都可以阅读的英语场景。我还使用了 Fitnesse(相当于 .NET),其背后有 Slim;一些简单的 CSS 使它看起来像其他的,同时也允许表格。

但是,大多数 BDD 工具都是针对全栈、系统范围的场景而设计的,通常没有任何模拟,或者可能用自定义框架替换第三方库。模拟库实际上不具备在这种规模下工作的设置。

如果您希望集成 Mockito 和 JUnit,听起来您可能会尝试使用类或小类组以较小的规模进行 BDD。这就是 BDD 最初的开始方式,并且是完全有效的。

自从 BDD 诞生以来,像 JUnit 这样的工具已经得到了改进,而 Mockito 还不存在!所以BDD工具不再特别必要。对于类级别代码,我很乐意简单地使用带有 Give、When 和 Then 的注释,例如 this (这是 C#,但 Java 类似)。

作为更高级别的替代方案,您始终可以敲出 small DSL 。这并没有花费我很长时间,而且即使对于非技术业务人员来说也是可读的。它使用 JUnit 运行,如果您愿意,您可以将 Mockito 放在那里(但我仍然怀疑如果您想这样做,您会担心混合问题)。

DSL 的另一个好处是它是一种快速、廉价的入门方式,没有 Cucumber 或 JBehave 的设置开销;但生成的步骤稍后可以轻松移植到 JBehave 之类的东西(您只需将代码移动到 JBehave 的正则表达式步骤,如果您不能使用 Twist 执行类似的操作,我会感到惊讶)。由于您不确定自己的要求,我会推荐此路线,因为它将帮助您入门并以非常便宜的价格获取有关您需要的更多信息。

关于java - 适用于 Java 平台的商业 BDD 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19514188/

相关文章:

xss - 如何修复反射(reflect)在 java 中的 XSS

android - './gradlew -Dtest.single=SimpleTest test' 运行我拥有的所有测试

angularjs - 测试失败,因为 AngularJS 没有及时初始化

php - 如何启动 TDD/BDD PHP CodeIgniter

angularjs - 用 Jasmine 测试 Angular "controller as"

java - RabbitMQ:如何在 "subscription added"上创建监听器

java - 在Map中减少两次迭代

testing - 用于在迁移时测试站点外观的浏览器插件

ruby-on-rails - 使用 Cucumber 测试场景的正确方法 (rails 2.3.8)

java - m2e 也可以配置为下载插件源吗?