我的团队正在使用 Play 框架开发一个 Java Web 系统,并在整个过程中实现 Angular.js。我的问题是,我应该使用 Cucumber-java 还是 Cucumber.js 进行自动化 BDD 功能测试?在针对此技术堆栈使用它们时,它们各自的优缺点是什么?
我在网上几乎没有找到与这个特定技术堆栈一起使用的内容。
我的团队正在使用 Play 框架开发一个 Java Web 系统,并在整个过程中实现 Angular.js。我的问题是,我应该使用 Cucumber-java 还是 Cucumber.js 进行自动化 BDD 功能测试?在针对此技术堆栈使用它们时,它们各自的优缺点是什么?
我在网上几乎没有找到与这个特定技术堆栈一起使用的内容。
首先,Cucumber 被设计成一个协作工具。如果您正在寻找测试自动化工具,那么您可能最好选择不会增加设计和维护一门通俗英语、无处不在的语言的开销的工具。
如果您正在与非技术利益相关者合作,那么 Cucumber 是一个不错的选择。整个团队将协作编写场景,但将是开发人员和测试人员编写将场景链接到您正在构建的应用程序的“粘合剂”。如果您选择 Cucumber-JVM,您将使用 Java/Groovy(或其他 JVM 语言)编写胶水代码;如果您选择 Cucumber-JS,您将使用 Javascript 编写胶水代码。因此,要问的问题之一是“我的测试人员和开发人员最适合使用哪种语言?”
您可能主要通过它公开的界面(例如 GUI 或已发布的 RESTful API)来驱动您的应用程序。无论您选择哪种 Cucumber,您的“胶水”代码都将使用其他库与您的应用程序交互(例如 Selenium WebDriver),所以要问自己的另一个问题是“我需要的库是否可用于 Java 或 Javascript?”
有时您可能希望您的“粘合”代码直接与您的应用程序代码对话。Cucumber-JS 'glue' 可以轻松地直接调用 Javascript,Cucumber-JVM 'glue' 可以轻松地直接调用 Java - 这样可能会影响您的选择。但是请记住,只有少数场景通常会绕过应用程序的接口,因此如果这是您的主要绊脚石,您应该重新审视 BDD 方法。这些幻灯片中还讨论了其中一些权衡
最后,我的感觉是 Cucumber-JVM 目前比 Cucumber-JS 更成熟。Aslak Helesøy 和 Julien Biezeman 是 Cucumber Ltd 的创始人(与 Matt Wynne 一起),所以我希望他们在某个时候能够达到平价。有关 Cucumber 的更多信息,请查看他们的在线视频或 <personal_plug>购买The Cucumber for Java Book </personal_plug>。
在从开源的角度签署供应商锁定之前,我会比较:
用户的声音也可能是一个很好的指标,但这会属于网站的离题类别
主要基于意见
许多好的问题会根据专家的经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定的专业知识。